Комментарии 3
Хочу добавить практический кейс, который попадает в серую зону между stub и fake (и частично mock, если смотреть на поведение).
В моем проекте AI-эндпоинт POST /ai/recommend-doctor работает с флагом AI_MOCK_RESPONSE=true. В этом режиме внешний LLM (Claude) отключается, но retrieval layer и БД продолжают работать полностью в реальном режиме. Меняется только финальная генерация ответа. По сути это не чистый stub и не fake - это гибрид: часть системы настоящая, часть заменена, но поведение остаётся близким к production pipeline.
Интересный эффект проявился в CI. Тест ожидал Pediatrician, но получил General Practitioner. Claude в этом режиме не вызывался, значит проблема была не в LLM, а в retrieval layer.
В production этот баг был бы легко "замаскирован": LLM мог бы скорректировать неправильный top-1 и тест прошёл бы зелёным. Mock mode убрал этот компенсирующий слой и показал реальную проблему ранжирования.
Получается, что частично мокнутая система иногда даёт более честный сигнал, чем полностью интегрированная - потому что убирает "умный буфер", который скрывает ошибки upstream.
Спасибо, полезная статья, на собесах часто спрашивают. Утащила в закладки
SQLite в памяти вместо тяжелого Postgres
Плохая практика на самом деле. Фактически, вы тестируете мок, а не реальное взаимодействие.

Моки, стабы и фейки: в чем разница и что выбрать для автотестов?