我有以下測試: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 關注
- 190 瀏覽
添加回答
舉報
0/150
提交
取消