我正在创建一个请求存根,以便将其传递给经过测试的功能:
request := httptest.NewRequest("GET", "http://example.com/foo", nil)
问题:我还可以通过向该请求添加Context
值来为该请求存根request-uuid
对象吗?
答案 0 :(得分:1)
您拥有request
,在将其传递之前,可以使用它进行任何操作。
使用Request.Context()
访问其上下文,使用context.WithValue()
派生一个包含您的键值的新context.Context
,并使用Request.WithContext()
获取一个新的{{ 3}}的新上下文:
request := httptest.NewRequest("GET", "http://example.com/foo", nil)
ctx := request.Context()
ctx = context.WithValue(ctx, "request-uuid", "myvalue")
request = request.WithContext(ctx)
// now request's context contains the "request-uuid" key