将标头注入 httptest.Recorder 以便 echo 上下文可以在

我有一些测试将标头注入 Echo,如下所示:


func test() {

    request := httptest.NewRequest(http.MethodGet, "/", http.NoBody)

    recorder := httptest.NewRecorder()

    recorder.HeaderMap.Add("If-None-Match", "\"d41d8cd98f00b204e9800998ecf8427e\"")


    context := inst.NewContext(request, recorder)


    testFunc(context)


    fmt.Printf("Status: %d", context.Response().Status)

}


func testFunc(ctx echo.Context) {

    ifNoneMatch := ctx.Response().Header().Get(headers.IfNoneMatch)

    if !util.IsEmpty(ifNoneMatch) && etag == ifNoneMatch {

        ctx.Response().WriteHeader(304)

    }

}

我当前的解决方案有效,但由于HeaderMap已弃用,我正试图找到一种更好的方法来执行此操作。Result我试过通过 doing注入标头,Result().Header.Add("If-None-Match", "\"d41d8cd98f00b204e9800998ecf8427e\"")但在调用context.Response().Header(). 有什么办法吗?


动漫人物
浏览 67回答 1
1回答

尚方宝剑之说

您可以使用以下方法,而不是使用已弃用的 HeaderMap() :request.Header().Set("Header-name", "Any header")
打开App,查看更多内容
随时随地看视频慕课网APP