Mock подменяет зависимость и позволяет задать поведение и проверить взаимодействия. Spy наблюдает вызовы реального объекта, обычно сохраняя выполнение его реализации.
Что такое Mock и Spy в тестировании?
Mock подменяет зависимость и позволяет задать поведение и проверить взаимодействия. Spy наблюдает вызовы реального объекта, обычно сохраняя выполнение его реализации.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Mock подменяет зависимость и позволяет задать поведение и проверить взаимодействия. Spy наблюдает вызовы реального объекта, обычно сохраняя выполнение его реализации.
Например, mock внешнего клиента вернёт заданный ответ без сети, а spy покажет, был ли вызван реальный метод и с какими аргументами. Терминология библиотек различается: иногда один объект поддерживает оба режима. Не привязывайте тест к каждому внутреннему вызову без необходимости — так он ломается при безопасном рефакторинге. Проверяйте прежде всего значимый результат и контракт взаимодействия.