@Spy
doc говорит:
Поле, помеченное @Spy, может быть явно инициализировано в точке объявления.В качестве альтернативы, если вы не предоставите экземпляр, Mockito попытается найти конструктор с нулевым аргументом (даже частный) и создаст для вас экземпляр.
@SpyBean
doc говорит:
Аннотация, которую можно использовать для применения шпионов Mockito к Spring ApplicationContext.
Все бины в контексте одного типа будут обернуты шпионом.Если существующий бин не определен, будет добавлен новый.
Таким образом, основное отличие состоит в том, что @SpyBean
- это особая аннотация Spring Boot, но @Spy
является частью самого Mockito.@SpyBean
и @Spy
в основном делают то же самое, но @SpyBean
может разрешать специфичные для Spring зависимости, например, @Autowired
, @Spy
может создавать только объекты с пустым конструктором.