Какую библиотеку используешь для тестирования в Go

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

Ответ

В Go стандартная библиотека testing — основной инструмент для тестирования. Она простая, но мощная. Для моков и assert-проверок часто используют:

  1. Testify (github.com/stretchr/testify) — популярный выбор из-за удобных assert и mock пакетов.
    func TestAdd(t *testing.T) {
        assert.Equal(t, 3, Add(1, 2), "должно быть 3")
    }
  1. gomock (go.uber.org/mock) — для генерации моков на основе интерфейсов.

  2. httptest — из stdlib для HTTP-тестирования.

Для бенчмарков тоже используется testing:

func BenchmarkAdd(b *testing.B) {
    for i := 0; i < b.N; i++ {
        Add(1, 2)
    }
}