Как тестировать код с базой данных в Go?

Ответ

Варианты: 1) in-memory SQLite или тестовая БД с миграциями. 2) testcontainers для реальной Postgres/MySQL. 3) интерфейс репозитория и мок в unit-тестах. 4) транзакция с откатом в конце теста (изоляция). Часто делают хелпер setupTestDB(t), возвращающий пул и путь к DSN.

db := setupTestDB(t)
tx, _ := db.BeginTx(ctx, nil)
defer tx.Rollback()
repo := NewRepo(tx)
// тесты против repo
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.