1 回答
TA贡献1820条经验 获得超10个赞
我不太清楚杜松子酒是什么,但我想我可以看到你的问题。在您的测试中,您正在调用具有 http 侦听器的 main,这就是您抱怨的行。似乎您认为您需要 CTRL + C 才能让您的应用程序作为某种守护进程运行,但这是错误的,您正在做的是提示您的应用程序过早结束,这会中断您的测试并输出错误消息。
要回答您的问题,您需要创建一个测试套件,您可以在其中运行测试并在这些测试停止时选择它以放下您的 http 服务器。
func TestMain(m *testing.M) {
/*set up your router or
database connections or
anything else you'll need
*/
exitCode := m.Run()
os.Exit(exitCode)
}
现在,在为您的端点运行测试时,您将需要发出模拟 http 请求,有点像真实用户。
我将提供一个通用的小例子。
func ATest(t* testing.T){
req, _ := http.NewRequest("GET", "/route", nil)
responseRecorder = httptest.NewRecorder()
router.ServeHTTP(responseRecorder, req)
if (http.StatusOk != responseRecorder.Code){
t.Fail()
}
}
让我知道这是否对您有帮助。
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报