Я тестирую класс, который зависит от bean-компонента.В рамках теста я смоделировал бин, но у мобина тоже есть своя @Autowired
зависимость.Можно ли как-нибудь удовлетворить эту зависимость?Как и сейчас, зависимость @Autowired
равна null , когда вызывается метод в макете.
Пример:
public class testclass {
@Autowired
private ClassToTest classToTest;
@MockBean
private DependencyOfClassToTest dependencyOfClassToTest;
@Mockbean
private MyOwnDependencyINeedHereInTheMock myOwnDependencyINeedHereInTheMock;
}
public class DependencyOfClassToTest {
@Autowired
private MyOwnDependencyINeedHereInTheMock myOwnDependencyINeedHereInTheMock;
}
Как видно над макетом beanсодержит @Autowired
зависимость.
Есть ли какие-либо решения для этого или я нарушаю какое-то правило тестирования?
Когда вызывается реальный метод в проверяемом компоненте, он вызывает myOwnDependencyINeedHereInTheMock , который будет нулевым, потому что это макет.
MockBeans не нулевой в классе @Autowired
, хотя они обнаруживаются Spring Boot.