Выбор ответа Junior Тестирование спрашивают часто обновлено

Мок и стаб

Вопрос

Чем мок отличается от стаба?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Стаб даёт заготовленные ответы, а мок ещё и проверяет вызовы. Стаб отвечает на вызовы, чтобы тестируемый код мог работать: «репозиторий вернёт этого пользователя».

Варианты ответа

  1. Мок работает только с интерфейсами, а стаб только с классами
  2. Стаб используется в интеграционных тестах, а мок в модульных
  3. Стаб даёт заготовленные ответы, а мок ещё и проверяет вызовыправильный ответ
  4. Это одно и то же: два названия для подменного объекта

Разбор

Стаб отвечает на вызовы, чтобы тестируемый код мог работать: «репозиторий вернёт этого пользователя». Мок позволяет проверить поведение: «метод Send вызван один раз с таким адресом». В Moq один объект может быть и тем и другим (Setup и Verify). Ограничение «только интерфейсы» относится к библиотекам: виртуальные члены классов тоже мокаются. Оба приёма используются в модульных тестах.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме