testcontainers-go — библиотека, которая поднимает Docker-контейнеры прямо из тестов. Пишешь тест, он запускает PostgreSQL в контейнере, даёт тебе connection string, ты прогоняешь миграции и тестируешь с реальной базой. После теста контейнер убивается. Это идеально для интеграционных тестов: никаких моков, никакого расхождения с продом. Поддерживает PostgreSQL, Redis, Kafka, RabbitMQ и десятки других сервисов. Единственный минус — нужен Docker на CI, и тесты медленнее юнитов.