Как много пишешь Unit-тесты

«Как много пишешь Unit-тесты» — вопрос из категории Тестирование, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go unit-тесты — неотъемлемая часть разработки. Использую стандартный пакет testing + testify для удобных assert'ов. Пишу тесты для:

  • Критичной бизнес-логики
  • Сложных алгоритмов
  • Пограничных случаев
  • Ошибок (error paths)

Пример:

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b, want int
    }{
        {2, 3, 5},
        {0, 0, 0},
        {-1, 1, 0},
    }

    for _, tt := range tests {
        got := Add(tt.a, tt.b)
        assert.Equal(t, tt.want, got)
    }
}

Стараюсь покрывать 70-80% кода, но без фанатизма — иногда интеграционные тесты полезнее. Тесты запускаю через go test -v -cover.