Поэтому у меня есть простой класс Java:Mockito: введен фиктивный класс не вводит для других классов
@Component
public class IWantToTestThisClass {
@Autowired
private ClassA classA;
@Autowired
private ClassB classB;
public ObjectA doIt(...) {
classB.returnObject();
}
ClassA содержит:
@Component
public class ClassA {
@Autowired
private ClassB classB;
public ObjectA doIt() {
classB.returnObject(...);
}
ClassB:
@Component
public class ClassB {
public ObjectA returnObject(...) {
...
}
Моей испытательной установки выглядит следующим образом:
@InjectMocks
private IWantToTestThisClass iWantToTestThisClass;
@Mock
private ClassA classA;
@Mock
private ClassB classB;
@Before
public void setUp() {
initMocks(this);
when(classA.doSmt()).thenCallRealMethod();
when(classB.doSmt()).thenCallRealMethod();
}
Проблема в том, что ClassB не вводится для ClassA.
Затем returnObject (ClassB) вызывается через класс A, он возвращает исключение NullPointerException (класс B не издевается/не вводится).
Если returnObject (класс B) вызывается через IWantToTestThisClass, это нормально.
Можно ли вводить ClassB для обоих классов одновременно? Я хочу назвать реальные методы, а не издеваться над ними.
Пожалуйста обеспечивают [mcve]. –
Я знаю, что это NullPointerException и почему я его получаю. :) – Laurynas
Можете ли вы обновить свой полный тестовый класс – kuhajeyan