Comments 8
Благодарю за статью!
Возник вопрос: дёргать repository напрямую, не очень хорошая практика. Лучше оборачивать всё внутри service'а. Она здесь присутствует для упрощения? И будет ли работать SpyBean с внедрённым объектом сервиса, вместо репозитория?
Можно упомянуть, что @SpyBean
из spring-boot задепрекейчен, взамен него предлагается использовать @MockitoSpyBean
из spring-framework.
Контейнер корректно подставляет именно этот спай бин репо в сервис? Не создает новый бин, а подставляет именно этот замоканный экземпляр?
Использование аннотации @MockBean в тестах, которые будут extends ваш родительский тест с @SpringBootTest, приводит к созданию нового спринг контекста. @SpyBean над бином в родительском тесте и Mockito.when() в дочернем - спринг контекст возьмётся из кеша. Если вы не хотите, чтобы тесты вашего проекта проходили час - надо постараться не плодить контексты спринга.
Работа с @SpyBean: использование в Spring Boot