# #go #go-gin #testify
Вопрос:
Я попытался написать тест для своего API для джина с помощью testify.
К сожалению, он отвечает неожиданным 404
кодом HTTP-ответа в рамках теста.
Когда я выполняю программу, я могу выйти на соответствующий интерфейс через curl и браузер.
Почему мои тесты проваливаются ?
Тестовый код:
func (suite *statisticTestSuite) TestGetProjects() {
suite.T().Log("TestGetAllProjects")
recorder := httptest.NewRecorder()
router := gin.Default()
request, err := http.NewRequest(http.MethodGet, "/api/v1/statistics/projects", nil)
request.Header = http.Header{"Content-Type": []string{"application/json"}}
assert.NoError(suite.T(), err)
router.ServeHTTP(recorder, request)
data := make(map[string]interface{})
data["projects"] = 3
respBody, err := json.Marshal(gin.H{
"code": 200,
"msg": "ok",
"data": data,
})
fmt.Println(recorder.Code)
fmt.Println(respBody)
}
Ответ №1:
Вы создаете маршрутизатор без какой-либо ручки. Добавить router.GET("/api/v1/statistics/projects", your handleFunc)
или
func TestHandle(t *testing.T) {
recorder := httptest.NewRecorder()
c, _ := gin.CreateTestContext(recorder)
yourHandleFunc(c)
fmt.Println(recorder.Code)
}