我有以下测试:package api_appfunc (api *ApiResource) TestAuthenticate(t *testing.T) { httpReq, _ := http.NewRequest("POST", "/login", nil) req := restful.NewRequest(httpReq) recorder := new(httptest.ResponseRecorder) resp := restful.NewResponse(recorder) api.Authenticate(req, resp) if recorder.Code!= 404 { t.Logf("Missing or wrong status code:%d", recorder.Code) }}我想测试这个功能,但是当我这样做的时候go test api_app -v测试从来没有这样。我明白那是因为我有这个功能的接收器。有什么方法可以测试这个东西吗?
1 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
该测试包可与功能,而不是方法。编写一个函数包装器来测试该方法:
func TestAuthenticate(t *testing.T) {
api := &ApiResource{} // <-- initialize api as appropriate.
api.TestAuthenticate(t)
}
您可以将所有代码移动到测试函数并消除该方法:
func TestAuthenticate(t *testing.T) {
api := &ApiResource{} // <-- initialize api as appropriate.
httpReq, _ := http.NewRequest("POST", "/login", nil)
req := restful.NewRequest(httpReq)
recorder := new(httptest.ResponseRecorder)
resp := restful.NewResponse(recorder)
api.Authenticate(req, resp)
if recorder.Code!= 404 {
t.Logf("Missing or wrong status code:%d", recorder.Code)
}
}
- 1 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消