提问人:A. Gille 提问时间:11/17/2023 更新时间:11/17/2023 访问量:31
我应该总是依赖httptest吗?ResponseRecorder.Result() 在我的断言中?
Should I always rely on httptest.ResponseRecorder.Result() in my assertions?
问:
我正在为 Golang REST API 处理程序编写一些测试,该处理程序使用以下命令进行测试:httptest
func TestT(t *testing.T) {
rr := httptest.NewRecorder()
ctx, _ := gin.CreateTestContext(rr)
ctx.Request, _ = http.NewRequest(http.MethodGet, "/path", http.NoBody)
MyHandler(ctx)
resp := rr.Result()
defer resp.Body.Close()
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
}
问题是,我已经看到很多人直接从记录器测试,而不是返回的响应,例如:Result()
assert.Equal(t, http.StatusBadRequest, rr.Code)
assert.Equal(t, string(body), rr.Body.String())
我知道在做什么和保证,但是围绕测试的干净和最佳实践是什么?Result()
httptest.ResponseRecorder
答: 暂无答案
评论
if ... == ...