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

Мок и стаб

Вопрос

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

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

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

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

Коротко

Правильный ответ: Стаб отдаёт заданные ответы, мок ещё проверяет, как его вызвали. Стаб обеспечивает косвенный ввод: when(...).thenReturn(...).

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

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

Разбор

Стаб обеспечивает косвенный ввод: when(...).thenReturn(...). Мок в строгом смысле проверяет косвенный вывод: verify(mock).send(...). В Mockito один и тот же объект может играть обе роли. К интерфейсам, классам и виду тестов это не привязано.

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

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

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