Выбор ответа Junior Тестирование спрашивают часто обновлено
Мок и стаб
Вопрос
Чем мок отличается от стаба?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Стаб даёт заготовленные ответы, а мок ещё и проверяет вызовы. Стаб отвечает на вызовы, чтобы тестируемый код мог работать: «репозиторий вернёт этого пользователя».
Варианты ответа
- Мок работает только с интерфейсами, а стаб только с классами
- Стаб используется в интеграционных тестах, а мок в модульных
- Стаб даёт заготовленные ответы, а мок ещё и проверяет вызовыправильный ответ
- Это одно и то же: два названия для подменного объекта
Разбор
Стаб отвечает на вызовы, чтобы тестируемый код мог работать: «репозиторий вернёт этого пользователя». Мок позволяет проверить поведение: «метод Send вызван один раз с таким адресом». В Moq один объект может быть и тем и другим (Setup и Verify). Ограничение «только интерфейсы» относится к библиотекам: виртуальные члены классов тоже мокаются. Оба приёма используются в модульных тестах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.