Юнит-тест с замоканной сессией ORM зелёный, а регистрация в проде падает
Сервис регистрации протестирован так: сессия SQLAlchemy заменена моком, тест проверяет, что был вызван session.add и session.commit. Тест зелёный. После релиза регистрация падает с IntegrityError: в таблице есть уникальный индекс по email, а повторная регистрация его нарушает.
Какой вывод правильный?
- Мок не знает об ограничениях БД — такое ловит тест на настоящей базе
- Мок был настроен неверно: надо было задать side_effect на commit
- Юнит-тесты для кода с базой не нужны вообще, только e2e
- Нужно было проверить assert_called_once_with с точными аргументами
