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

Фейк или мок

Вопрос

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

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

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

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

Коротко

Правильный ответ: Фейк это рабочая упрощённая реализация, мок объект с настроенными ответами и проверкой вызовов. Фейк ведёт себя как настоящая реализация, только проще: сохранил, потом прочитал.

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

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

Разбор

Фейк ведёт себя как настоящая реализация, только проще: сохранил, потом прочитал. Он переиспользуется во многих тестах и проверяет поведение. Мок (MockK, Mockito) возвращает заранее настроенные значения и позволяет проверить, был ли вызов (verify), но привязывает тест к деталям реализации. Google в гайдах по тестированию рекомендует фейки там, где возможно. Оба используются в любых тестах.

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

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