Go имеет встроенный пакет тестирования (testing), который предоставляет простую, но мощную среду тестирования.
-
Типы тестов:
-
Модульные тесты: Тестируйте отдельные функции или методы по отдельности.
-
Тесты на основе таблиц. Шаблон для эффективного тестирования нескольких случаев.
-
Бенчмарки: Тестирование производительности с использованием func BenchmarkXxx(b *testing.B).
-
Примеры: тесты документации, которые также проверяют выходные данные.
-
Интеграционные тесты. Тесты, включающие несколько компонентов.
-
Рекомендации:
-
Используйте testing.T для состояния тестирования и отчетов.
-
Следуйте соглашению об именах: TestXxx для тестов, BenchmarkXxx для тестов.
-
Используйте t.Run() для подтестов, чтобы организовать связанные тесты.
-
Используйте t.Parallel() для параллельного выполнения теста, если это безопасно.
-
Используйте testing/quick для тестирования на основе свойств.
-
Используйте testing/iotest для тестирования ввода-вывода.
-
Рассмотрите возможность использования помощников по тестированию и тестовых приспособлений.
-
Используйте go test -cover для анализа покрытия.
Итог
Go имеет встроенный пакет тестирования (testing), который предоставляет простую, но мощную среду тестирования.