@NubasLol

Golang как тестировать хендлеры, которые возвращают шаблон?

func (c Controller) Index(w http.ResponseWriter, r *http.Request) {

	tmpl, _ := template.ParseFiles("")

	_ = tmpl.Execute(w, templateData)
}


req, _ := http.NewRequest("GET", "/sites", nil)

rr := httptest.NewRecorder()
handler := http.HandlerFunc(controller.Index)

handler.ServeHTTP(rr, req)

assert.Equal(t, http.StatusOK, rr.Code)


Выдает ошибку, там где tmpl.Execute(w, templateData)

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x595bfe]
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
tmpl, _ := template.ParseFiles("")
Вы здесь не проверяете возвращаемую ошибку и вполне логично огребаете панику потом.

P.S. Не стоит парсить шаблон при каждом вызове хендлера. Парсить его надо один раз при старте приложения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы