Какие виды тестов вы использовали? Unit, Mock, Integration, Test Containers?
Ответ от нейросети
sobes.tech AI
В проектах на Go я использовал несколько видов тестов:
- Unit-тесты — проверяют отдельные функции или методы. В Go это обычно делается с помощью пакета
testing. Например:
func Add(a, b int) int {
return a + b
}
func TestAdd(t *testing.T) {
result := Add(2, 3)
if result != 5 {
t.Errorf("expected 5, got %d", result)
}
}
-
Mock-тесты — применяю для изоляции зависимостей, например, когда нужно замокать интерфейс базы данных или внешнего API. Использую библиотеки вроде
gomockилиtestify/mock. -
Integration-тесты — проверяют взаимодействие нескольких компонентов вместе. Например, тестирование работы с реальной базой данных или внешним сервисом.
-
Test Containers — применял для поднятия временных контейнеров с базами данных или брокерами сообщений в тестах, чтобы обеспечить изолированную среду. Например, с помощью
testcontainers-goможно запустить контейнер PostgreSQL для интеграционных тестов.
Такой подход позволяет покрыть код разными уровнями тестирования и повысить надежность приложения.