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`)
}

Подвести:

  1. Создать сервер с martini.Classic()
  2. Создайте маршрут к обработчику, который вы хотите протестировать
  3. Выполните это против регистратора ответа
  4. Проверьте результаты (код состояния, тело) на регистраторе ответов, как ожидалось.
Другие вопросы по тегам