Sobes.tech
Back to questions
Junior — Middle
67

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

Companies where asked
AstonAston

Answer from AI

sobes.tech AI

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

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

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

Пример:

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

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