Go Martini Модульный тестовый пример
Я очень новичок в Go и мне было интересно, есть ли соглашение / стандарт с примерами того, как тестировать код обработчика Go Martini?
Заранее спасибо!
1 ответ
В библиотеке martini-contrib есть много существующего кода, который стоит посмотреть: https://github.com/martini-contrib/secure/blob/master/secure_test.go
например
func Test_No_Config(t *testing.T) {
m := martini.Classic()
m.Use(Secure(Options{
// nothing here to configure
}))
m.Get("/foo", func() string {
return "bar"
})
res := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/foo", nil)
m.ServeHTTP(res, req)
expect(t, res.Code, http.StatusOK)
expect(t, res.Body.String(), `bar`)
}
Подвести:
- Создать сервер с
martini.Classic()
- Создайте маршрут к обработчику, который вы хотите протестировать
- Выполните это против регистратора ответа
- Проверьте результаты (код состояния, тело) на регистраторе ответов, как ожидалось.