httptest.ResponseRecorder 没有字段或方法 Result

所以这个真的很奇怪,我试图得到一个呈现 JSON 的模拟响应。我的测试如下所示:


import (

    "fmt"

    "net/http"

    "net/http/httptest"

    "reflect"

    "strings"

    "testing"

)

...


func TestMessageFromResponse(t *testing.T) {

    mc := MyController{}

    body := "{ \"message\":\"kthxbai\" }"

    w := httptest.NewRecorder()

    w.Write([]byte(body))

    resp := w.Result()

    msg := mc.messageFromResponse(resp)

    if msg != "kthxbai" {

        t.Errorf("Expected response body to be kthxbai but was %s", msg)

    }

}

我正在测试该方法messageFromResponse,MyController但它甚至没有构建。当我go test在我的项目目录中运行时,我收到以下错误:


./my_controller_test.go:115: w.Result undefined (type *httptest.ResponseRecorder has no field or method Result)

我还应该提到,我httptest.ResponseRecorder在同一个文件的其他地方成功地用作写入存根,但是当我尝试访问时它只是失败了Result()。


繁星coding
浏览 207回答 1
1回答

holdtom

我最初将此作为评论处理,因为我不确定相关性,但为了后代:在线godoc总是引用最新版本。在这种情况下,该Result()方法是在上周才发布的 Go1.7 中添加的。godoc -server如有疑问,请通过运行或检查您当地的 godoc&nbsp;godoc <packagename>。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go