AI написал тесты из моков: что они действительно проверяют

Посмотрите, остаётся ли в тесте реальная логика приложения. Если заменены и источник данных, и преобразование, и итоговая функция, тест может подтверждать только заранее настроенные ответы заглушек.

Где появляется ошибка

Сервис считает стоимость заказа и вызывает платёжный шлюз. Агент подменил шлюз — это ожидаемо, реальные деньги в тесте не нужны. Но затем он подменил и вычисление суммы фиксированным числом. Проверка успешного платежа не обнаружит, что скидка считается дважды. При удалении расчётной функции такой тест продолжит проходить, хотя основная ценность сценария исчезнет.

Рабочее решение

Оставьте настоящими расчёт и формирование запроса. На внешней границе используйте простой двойник, который записывает сумму и валюту. Отдельный интеграционный тест проверяет совместимость со шлюзом в безопасной среде. Для объектов Python autospec помогает приблизить интерфейс мока к реальному, но не возвращает скрытую бизнес-логику. Важно понимать назначение каждой подмены, а не запрещать моки целиком.

Контрольные случаи

ПроверкаОжидаемое поведение
Скидка десять процентов на заказ из двух позицийВ записанном запросе находится независимо рассчитанная итоговая сумма, а не число из настроек мока.
Шлюз возвращает отказСервис сохраняет корректный статус и не помечает заказ оплаченным.
Искусственно сломать формулу скидкиТест расчётного сценария падает; проверка не изолировала именно то поведение, которое требовалось проверить.

Отдельно сравните поведение теста со специально испорченной реализацией. Если очевидная ошибка расчёта не меняет результат проверки, проблема находится в конструкции теста, а не в недостаточном количестве утверждений.

Большой интеграционный тест тоже не всегда лучше: он может быть медленным и нестабильным. Разделяйте бизнес-проверку и совместимость внешнего протокола, чтобы сбой имел понятную причину.

Понимание границ тестирования помогает принимать сгенерированные изменения и находить ложную уверенность в зелёных проверках. В платном курсе Vibecoding: Claude Code, Codex, Cursor и agentic development можно продолжить изучение соответствующего инженерного направления. Перед покупкой сравните программу и открытые материалы со своей задачей.

Документация для проверки технических деталей: unittest.mock.

Следующий шаг: AI-разработка: разборы ошибок, изменений и проверки кода. По смежным вопросам: AI написал миграцию БД: что проверить до запуска, AI написал async-код, но сервер зависает: проверьте блокирующие вызовы.