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.