Писал ли unit-тесты

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

Ответ

Да, писал unit-тесты в Go с использованием стандартного пакета testing и библиотек вроде testify для удобных assert'ов. Пример простого теста:

func TestSum(t *testing.T) {
    tests := []struct {
        name string
        a, b int
        want int
    }{
        {"positive", 2, 3, 5},
        {"negative", -1, -1, -2},
    }

    for _, tt := range tests {
        t.Run(tt.name, func(t *testing.T) {
            got := Sum(tt.a, tt.b)
            assert.Equal(t, tt.want, got)
        })
    }
}

Использовал table-driven тесты для покрытия разных кейсов, моки (например, gomock) для изоляции зависимостей, и стремился к 80%+ coverage. Также применял тестирование конкурентных операций с -race.