Некоторые подходы для заглушки зависимостей в модульных тестах:
Заглушки (Stubs). python-academy.org Это простые объекты, которые предоставляют предопределённые ответы на вызовы методов во время теста. python-academy.org Заглушки используют, когда тесту нужны какие-то данные от зависимости, но сама зависимость не является объектом проверки. python-academy.org Пример: заглушка для сервиса, возвращающего погоду, всегда отдаёт определённые данные. python-academy.org
Моки (Mocks). python-academy.org Это более «умные» объекты, которые не только предоставляют ответы, но и позволяют проверять, как код взаимодействовал с зависимостью. python-academy.org Можно настроить ожидания (например, какой метод должен быть вызван, с какими аргументами, сколько раз) и затем проверить, были ли эти ожидания выполнены. python-academy.org Пример: мок для сервиса отправки email, который позволяет проверить, что метод send_email был вызван ровно один раз с правильным адресом получателя и темой письма. python-academy.org
Тестовые шпионы (Test Spies). autoqa.org Используются для тестов взаимодействия. autoqa.org Основной функционал — запись данных или вызовов, поступающих из тестируемого объекта для последующей проверки корректности вызова зависимого объекта. autoqa.org Позволяет проверить логику тестируемого объекта без проверок зависимых объектов. autoqa.org
Фальшивые объекты (Fake Objects). autoqa.org Используются в основном для запуска тестов и ускорения их работы. autoqa.org Основные примеры — эмулятор для конкретного приложения БД в памяти (fake database) или фальшивый веб-сервис. autoqa.org
Часто оптимальная стратегия — гибрид, где моками покрывают взаимодействия, а заглушками — контракты и данные. garanord.md
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.