testing-aqa middle

В чём разница: mock vs spy?

Ответ

mock() — пустой объект, всё default. spy() — обёртка над реальным: методы вызываются, если не замокать. Для spy: doReturn().when(spy).method() (иначе вызовется реальный метод).

Разбор: mock() возвращает «пустышку» с default-значениями для всех методов, а spy() оборачивает реальный объект и по умолчанию вызывает его настоящие методы. Главная ловушка — не перепутать, кто из них «пустой», а кто «реальный». Для spy предпочтительнее doReturn().when(spy).method(), потому что when(spy.method()) сначала реально выполнит метод с возможным побочным эффектом.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться