4
일부 단위 테스트를 위해 Mockito 1.9.5를 사용하고 있습니다. 개인 인터페이스 필드가있는 클래스에 구체적인 클래스 모의를 주입하려고합니다.) (Mockito : 개인 인터페이스 필드에 클래스 모의를 삽입하십시오.
클래스 I이 클래스
@RunWith(MockitoJUnitRunner.class)
public class ServiceTest {
@Mock
private iHelper helper;
@InjectMocks
private Service service;
@Before
public void setup() {
service = new Service();
}
@Test
public void testStuff() {
doNothing().when(helper).helpMeOut();
service.doSomething();
}
}
이 코드는 helper.helpMeOut를 호출하려고 NullPointerException이 발생에 대한
@Component
public class Service {
@Autowired
private iHelper helper;
public void doSomething() {
helper.helpMeOut();
}
}
내 테스트를 테스트하고있어 예를 들면 다음과 같습니다이다 doSomething()에 있습니다. 디버깅을하고 테스트를 실행할 때 도우미가 null이라는 사실을 알았습니다. iHelper를 구체적인 클래스 Helper로 변경해 보았습니다. 동일한 문제가 발생했습니다.
제안 사항? 어떻게 Mockito가 모의 사설 필드에 모의를 주입하게 할 수 있습니까?
정확히 무엇을하고 있습니다. 이것은 일하기로되어 있습니다. 사실, 그것은 나를 위해 작동합니다; 나는 종종이 접근법을 정확하게 사용한다. 실제 Mockito 전문가가보기 원하면 Mockito 사용자 목록에 게시 해보십시오. –
헬퍼 필드 가시성을 기본값으로 변경하지 않는 이유는 무엇입니까? 나는 서비스가 테스트와 같은 패키지에 있다고 생각한다. – ponomandr
@ponomandr 그건 도움이되지 않습니다. '@ InjectMocks' 코드는 개인 필드를 설정할 수있는 반사 마법을 가지고 있습니다. –