Как использовать go test?

Junior
1.2k просмотров
AFK Offer AI

Тесты в Go — файлы *_test.go с функциями TestXxx(t *testing.T):

// math_test.go
func TestAdd(t *testing.T) {
    got := Add(2, 3)
    if got != 5 {
        t.Errorf("Add(2,3) = %d, want 5", got)
    }
}

Запуск:

go test ./...              # все тесты
go test ./pkg/user         # конкретный пакет
go test -run TestAdd       # по имени (regex)
go test -v                 # verbose
go test -count=1           # без кеша
go test -race              # с детектором гонок
go test -cover             # покрытие
go test -coverprofile=c.out && go tool cover -html=c.out

t.Helper() — помечает функцию как хелпер (ошибка покажет вызывающий код). t.Parallel() — разрешает параллельный запуск. t.Skip() — пропуск теста.

Следующий вопрос

Что такое interface nil?