大家好,这段代码是模拟客户端,模拟服务器交互的一部分。我在理解上下文时遇到麻烦。
在这里,我使用'WithValue'明确地将跟踪器接口与上下文“关联”,然后使用WithContext将其插入到我的请求中。但是,当我检查请求的上下文是否包含跟踪器接口时,会返回错误“此上下文应包含跟踪器”。我不了解的上下文和WithValue是什么?
var tracker Tracker
ctx := context.WithValue(context.Background(), contextKey, tracker)
req := httptest.NewRequest("GET", "localhost:12345/test", nil)
req.Header.Add(HEADER)
req = req.WithContext(ctx)
_, ok := ctx.Value(contextKey).(Tracker)
if !ok {
log.Fatal("1: This context should contain a tracker")
}
相关分类