Я использую Echo Framework Labstack для создания API в Golang. Теперь у меня есть проблема, с которой я не могу обойтись, когда хочу проверить конечную точку.
У меня есть такая функция-обработчик
func DoStuff(c echo.Context) error {
businessUnit := strings.ToUpper(c.FormValue("bu"))
week := c.FormValue("wk")
file, _ := c.FormFile("file")
...
}
Обработчик работает просто отлично. У меня сейчас проблема в написании интеграционных тестов для этого.
Эта конечная точка принимает Content-Type: multipart/form-data
.
Вот как выглядят некоторые из моих других тестов обработчиков:
func TestDoStuff(t *testing.T) {
// Not sure about this part tho
body := new(bytes.Buffer)
writer := multipart.NewWriter(body)
writer.WriteField("bu", "HFL")
writer.WriteField("wk", "10")
part, _ := writer.CreateFormFile("file", "file.csv")
part.Write([]byte(`sample`))
e := echo.New()
req := httptest.NewRequest(http.MethodPost, "/endpoint", body)
req.Header.Add("Content-Type", "multipart/form-data")
rec := httptest.NewRecorder()
c := e.NewContext(req, rec)
if assert.NotPanics(t, func(){ _ = DoStuff(c)}){
assert.Equal(t, http.StatusOK, rec.Code)
... more assertions ...
}
}
Кажется, я не могу получить значения формы в обработчик. Любая помощь будет принята с благодарностью.