Встречается на собеседованиях • сегодня
В чем разница между Mock и Spy аннотацией
Mock создает полностью заглушенный объект, где все методы по умолчанию возвращают "пустые" значения (null, 0, false и т.д.), если поведение не переопределено. Spy же оборачивает реальный объект, вызывая его настоящие методы, если они не заглушены.
Пример с Mockito:
```java
// Mock - все методы заглушены
List mockList = Mockito.mock(List.class);
mockList.size(); // вернет 0
// Spy - вызывает реальные методы
List realList = new ArrayList<>();
List spyList = Mockito.spy(realList);
spyList.add("test");
spyList.size(); // вернет 1 (реальный вызов)
```
Основные различия:
- Mock легковеснее, но требует явного определения поведения
- Spy полезен, когда нужно частичное тестирование реального объекта
- Mock полностью изолирует тестируемый код, Spy сохраняет часть реальной логики

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы