2017-09-17 2 views
1

아래 코드 섹션에 게시 된 메서드는 void를 반환합니다. void를 반환하는 메서드를 테스트하는 방법을 알고 싶습니다. 몇 가지 답변을 확인했지만 예외를 전달할 때 "doThrow()"를 사용하지만 예외가 발생하지 않는 경우 예외가 발생하지 않습니다.Mockito를 사용하여 void 메서드를 테스트하는 방법

메소드를 테스트하면 어떻게 무효가 될까요?

코드

public void setImageOnImageView(RequestCreator requestCreator, ImageView imgView) { 
    requestCreator.into(imgView); 
} 

테스트 : 정확히 테스트하려는 어떤

public class ValidationTest { 
    @Mock 
    private Context mCtx = null; 
    @Rule 
    public MockitoRule mockitoRule = MockitoJUnit.rule(); 

    @Before 
    public void setUp() throws Exception { 
     mCtx = Mockito.mock(Context.class); 
     Assert.assertNotNull("Context is not null", mCtx); 
    } 

    @Test 
    public void setImageOnImageView() throws Exception { 
     Uri mockUri = mock(Uri.class); 
     RequestCreator requestCreator = Picasso.with(mCtx).load(mockUri); 
     RequestCreator spyRequestCreator = spy(requestCreator); 
     ImageView imageView = new ImageView(mCtx); 
     ImageView spyImageView = spy(imageView); 

     doThrow().when(spyRequestCreator).into(spyImageView); 
     //spyRequestCreator.into(spyImageView); 
    } 
} 

답변

0

? 이 테스트는 "setImageOnImageView(RequestCreator, ImageView)이 호출되면 RequestCreator.into(ImageView)"을 호출합니까?

테스트하려는 경우 '무효'를 테스트하지 않으려 고합니다. 오히려 다음과 같이 추천합니다 :

@Test 
public void itInvokesRequestCreatorIntoOnProvidedImageView() { 
    RequestCreator creator = mock(RequestCreator.class); 
    ImageView imageView = mock(ImageView.class); 

    setImageOnImageView(creator, imageView); 
    verify(creator).into(imageView); 
} 
+0

덕분에 이제는 작동합니다. 내 질문에 여기 좀 봐 주시겠습니까 : https : //stackoverflow.com/questions/46267298/method-not-mocked-using-spy 나는 방법을 테스트하려고하지만 테스트 케이스가 실패합니다. – user2121

관련 문제