Библиотека для тестирования (и http тестирования)
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)
}