-1
을 위해 주입하지
그래서 간단한 자바 클래스가 있습니다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();
}
문제는 ClassA에 대해 ClassB가 주입되지 않는다는 것입니다.
returnObject (ClassB)가 classA를 통해 호출되면 NullPointerException을 반환합니다 (ClassB는 조롱되거나 삽입되지 않습니다).
IWantToTestThisClass를 통해 returnObject (classB)가 호출되면 괜찮습니다.
두 클래스의 ClassB를 동시에 주입 할 수 있습니까? 나는 조롱 한 것이 아니라 진짜 방법을 부르고 싶습니다.
에 세터 setClassB (...)를 추가 할 경우 [mcve] 주시기 바랍니다. –
나는 그것이 NullPointerException이며, 왜 그것을 얻는 지 알고있다. :) – Laurynas
전체 테스트 클래스를 업데이트 할 수 있습니까 – kuhajeyan