Библиотека для тестирования (и http тестирования)

image
ftest — библиотека, упрощающая тестирование. Имеет плавучий дизайн, что уменьшает количество строк кода. Использует t.Helper () чтобы во время сбоя теста вместо кучи сообщений выводить лишь одну актуальную строку, где тест не прошел
ftest/fclient — Помощник при тестировании http приложений, основанный на ftest.

Примеры:

ftest


import (
  "testing"

  "github.com/alexbyk/ftest"
)

func TestFoo(t *testing.T) {
  ftest.New(t).Eq(2, 2).
    Contains("FooBarBaz", "Bar").
    PanicsSubstr(func() { panic("Foo") }, "Foo")
}

ftest/fclient


import (
  "fmt"
  "net/http"
  "testing"

  "github.com/alexbyk/ftest/fclient"
)

func hello(w http.ResponseWriter, r *http.Request) {
  w.Write([]byte(`{"foo": "bar"}`))
}

func Test_hello(t *testing.T) {
  cl := fclient.New(t, hello)

  cl.Get("/hello").CodeEq(200).
    BodyContains("bar").
    JSONEq(`{"foo":"bar"}`)

  // можно напрямую использовать ответ
  res := cl.Get("/hello")
  fmt.Println(res.Body)
}

© Habrahabr.ru