Я написал тестовый пример для метода тестирования в среде Gin-Gonic, но он не дает ожидаемого результата при выполнении тестового примера.Но когда я запускаю метод с использованием API в Postman, он работает правильно.
Контрольный пример
func TestList(t *testing.T) {
router := gin.New()
router.GET("/testList", things.List)
req, _ := http.NewRequest("GET", "/stuff", nil)
resp := httptest.NewRecorder()
router.ServeHTTP(resp, req)
assert.NotNil(t, resp.Body.String())
assert.Equal(t, 201,resp.Code, resp.Body.String())
}
Метод создания контрольного примера
func List(c *gin.Context) {
db := c.MustGet("db").(*mgo.Database)
things := []models.Thing{}
err := db.C(models.CollectionStuff).Find(nil).All(&things)
if err != nil {
c.Error(err)
}
c.JSON(http.StatusOK, things)
}
Маршрутизатор
func main() {
router := gin.Default()
router.Use(middlewares.Connect)
router.GET(Prefix +"/things", things.List)
}
Когда я запускаю контрольный пример с помощью go test-v. / ... Вывод
Error Trace: thing_test.go:31
Error: Not equal:
expected: 201
actual : 404
Test: TestList
Messages: 404 page not found
При работе через API он работает, но не при выполнении через контрольный пример.