Весна (@SpyBean) против Мокито (@Spy) - PullRequest
0 голосов
/ 15 февраля 2019

Чем отличаются @SpyBean от org.springframework.boot.test.mock.mockito.SpyBean и @Spy от org.mockito.Spy?

Использование @SpyBean вместо @Spy делает мои тесты неудачными.

1 Ответ

0 голосов
/ 18 февраля 2019

@Spy doc говорит:

Поле, помеченное @Spy, может быть явно инициализировано в точке объявления.В качестве альтернативы, если вы не предоставите экземпляр, Mockito попытается найти конструктор с нулевым аргументом (даже частный) и создаст для вас экземпляр.

@SpyBean doc говорит:

Аннотация, которую можно использовать для применения шпионов Mockito к Spring ApplicationContext.

Все бины в контексте одного типа будут обернуты шпионом.Если существующий бин не определен, будет добавлен новый.

Таким образом, основное отличие состоит в том, что @SpyBean - это особая аннотация Spring Boot, но @Spy является частью самого Mockito.@SpyBean и @Spy в основном делают то же самое, но @SpyBean может разрешать специфичные для Spring зависимости, например, @Autowired, @Spy может создавать только объекты с пустым конструктором.

...