Выбор ответа Junior Производительность и тестирование обновлено

Стаб, мок, фейк и спай

Вопрос

Тест проверяет, что view model вызвала analytics.track("purchase") ровно один раз. Какой тестовый двойник здесь нужен?

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

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

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

Коротко

Правильный ответ: Мок или спай: записывает вызовы для проверки. Стаб отвечает заготовками и годится для проверки состояния результата.

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

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

Разбор

Стаб отвечает заготовками и годится для проверки состояния результата. Спай или мок фиксирует вызовы и аргументы, это нужно для проверки взаимодействий вроде аналитики. Фейк работает по-настоящему, но упрощённо. Dummy только заполняет параметр. В Swift двойники чаще всего пишут руками через протоколы.

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

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