Выбор ответа Junior Производительность и тестирование обновлено
Стаб, мок, фейк и спай
Вопрос
Тест проверяет, что view model вызвала analytics.track("purchase") ровно один раз. Какой тестовый двойник здесь нужен?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Мок или спай: записывает вызовы для проверки. Стаб отвечает заготовками и годится для проверки состояния результата.
Варианты ответа
- Стаб: он возвращает заранее заданные ответы
- Фейк: упрощённая рабочая реализация в памяти
- Мок или спай: записывает вызовы для проверкиправильный ответ
- Dummy: объект, который передают, но не используют
Разбор
Стаб отвечает заготовками и годится для проверки состояния результата. Спай или мок фиксирует вызовы и аргументы, это нужно для проверки взаимодействий вроде аналитики. Фейк работает по-настоящему, но упрощённо. Dummy только заполняет параметр. В Swift двойники чаще всего пишут руками через протоколы.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Производительность и тестирование»
- Тест в Swift Testing
- Hang и hitch: разница
- Пирамида тестов в iOS
- Тестирование сетевого слоя через URLProtocol
- Бюджет кадра на iPhone с ProMotion
- Сколько памяти занимает декодированная картинка
- Приложение пропадает без крэш-лога
- Задача на Swift: статистика рывков по длительностям кадров