Бизнес-сервис должен зависеть от узкого интерфейса репозитория, а реализацию получать через конструктор. В unit-тесте передают fake или mock, а не реальное подключение.
Как создать репозиторий так, чтобы в тестах можно было подменить реальное подключение к Postgres на мок?
Бизнес-сервис должен зависеть от узкого интерфейса репозитория, а реализацию получать через конструктор. В unit-тесте передают fake или mock, а не реальное подключение.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Бизнес-сервис должен зависеть от узкого интерфейса репозитория, а реализацию получать через конструктор. В unit-тесте передают fake или mock, а не реальное подключение.
Например, интерфейс FindUser(ctx, id) описывает нужную операцию, PostgresRepository выполняет SQL, а fake возвращает заранее заданный результат. SQL-логику отдельно проверяют интеграционным тестом на изолированной БД. Подмена репозитория не доказывает корректность настоящего запроса.