使用Golang中的httprouter包在单元测试中设置命名的URL路径参数

126 阅读1分钟

如果你在你的Go应用程序中使用httprouter包进行路由,并需要测试 "命名 "的URL路径参数,你可以使用下面的例子。

测试

handler := your handler

r := httptest.NewRequest(http.MethodGet, "/api/v1/users/:uuid", nil)
w := httptest.NewRecorder()

ctx := r.Context()
ctx = context.WithValue(ctx, httprouter.ParamsKey, httprouter.Params{
    {"uuid", "some-uuid"},
})
r = r.WithContext(ctx)

handler.Handle(w, r)

确认

如果你在你的处理程序中使用下面的代码,你会看到some-uuid 是存在的:

httprouter.ParamsFromContext(r.Context()).ByName("uuid")