代码之家  ›  专栏  ›  技术社区  ›  RudziankoÅ­

httptest.NewRequest设置上下文存根

  •  1
  • RudziankoÅ­  · 技术社区  · 6 年前

    我正在创建一个请求存根,以便将其传递到测试下的函数:

    request := httptest.NewRequest("GET", "http://example.com/foo", nil)
    

    问题 :我也可以存根吗 Context 通过添加 request-uuid 有价值吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   icza    6 年前

    你有 request ,在传递之前,您可以对它做任何您想做的事情。

    使用 Request.Context() 要访问其上下文,请使用 context.WithValue() 得到一个新的 context.Context 把你的关键价值放在里面 Request.WithContext() 获得新的 http.Request 在新的背景下:

    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