Junior
97
questionbank

Что такое мок (mock) в тестировании?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Мок (mock) — это объект-заглушка, полностью имитирующий поведение реального зависимого компонента или сервиса в тестовой среде. Он позволяет контролировать возвращаемые значения методов зависимостей и проверять, как тестируемый код с ними взаимодействует.

Основные отличия от других тестовых заглушек (Stubs, Fakes):

  • Stub (заглушка): Предоставляет предопределенные ответы на вызовы методов, но не проверяет взаимодействие.
  • Fake (фейк): Имеет работающую, но упрощенную реализацию зависимого компонента.
  • Mock (мок): Имитирует поведение, предоставляет предопределенные ответы и, самое главное, позволяет верифицировать, как тестируемый код взаимодействовал с этим объектом (например, какие методы были вызваны, сколько раз, с какими аргументами).

Назначения:

  • Изоляция тестируемого кода от внешних зависимостей (баз данных, внешних сервисов, файловой системы и т.д.).
  • Ускорение выполнения тестов.
  • Тестирование граничных случаев и обработки ошибок, которые сложно воспроизвести с реальными зависимостями.
  • Верификация ожидаемого взаимодействия между объектами.

Пример использования с Mockito:

java