Какое отличие между мок-объектами и стабами в контексте тестирования?

В контексте тестирования мок-объекты (mocks) и стабы (stubs) служат для замены реальных компонентов, но имеют разные цели:

Короткий ответ

Что ответить на собеседовании

В контексте тестирования мок-объекты (mocks) и стабы (stubs) служат для замены реальных компонентов, но имеют разные цели:

Подробный разбор

Ответ с пояснениями

В контексте тестирования мок-объекты (mocks) и стабы (stubs) служат для замены реальных компонентов, но имеют разные цели:

  • Стаб (Stub) — это простой объект, который возвращает заранее определённые данные, чтобы тест мог работать с предсказуемым поведением. Он не проверяет, как именно вызывается, а просто предоставляет нужные ответы.
  • Мок (Mock) — это объект, который не только имитирует поведение, но и проверяет, что методы были вызваны с ожидаемыми параметрами и в нужном порядке. Моки используются для проверки взаимодействий.

Пример:

  • Стаб может возвращать фиктивный ответ от сетевого запроса.
  • Мок проверит, что метод запроса был вызван ровно один раз с определённым URL.

В iOS для создания моков и стабов часто используют фреймворки, например, OCMock или Cuckoo.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее