2014-09-26 1 views
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가 모의 사설 필드에 모의를 주입하게 할 수 있습니까?

+1

정확히 무엇을하고 있습니다. 이것은 일하기로되어 있습니다. 사실, 그것은 나를 위해 작동합니다; 나는 종종이 접근법을 정확하게 사용한다. 실제 Mockito 전문가가보기 원하면 Mockito 사용자 목록에 게시 해보십시오. –

+0

헬퍼 필드 가시성을 기본값으로 변경하지 않는 이유는 무엇입니까? 나는 서비스가 테스트와 같은 패키지에 있다고 생각한다. – ponomandr

+0

@ponomandr 그건 도움이되지 않습니다. '@ InjectMocks' 코드는 개인 필드를 설정할 수있는 반사 마법을 가지고 있습니다. –

답변

관련 문제