2013-05-15 2 views
0

테스트 용 Mockito 프레임 워크를 사용하고 있습니다. 이제 다음과 같은 문제가 발생했습니다.Mockito : 모의 메서드 매개 변수

테스트 할 클래스입니다.

이것은 내 테스트입니다.

public class ParentTest { 

    @InjectMocks 
    private Parent parent; 

    @Mock 
    private Child child; 

    @Before 
    public void setup() { 
     initMocks(this); 
    } 

    @Test 
    public testParentMethod(){ 
     ..... 
    } 

    @Test 
    public testChildDetailsMethod(){ 
     ChildDetails childDetails = new ChildDetails(); 
     childDetails.setAge(20); 
     parent.setChildDetails(childDetails); 
    } 

} 

모크 오브 아이 (Mock for Child) 속성이 그 일을합니다. 문제는 childDetails.validate() (이 메소드 만)를 모방하고 (getAge()가 20을 반환해야 함) 다른 메소드를 남기고 싶다는 것입니다. 이 문제를 해결하는 방법을 제안 할 수 있습니까?

답변

1

이 목적으로 spy을 사용해야합니다. 스파이는 부분적인 모의이며, 당신이 말한 개인적인 방법만을 모의 할 것입니다. validate()void 메서드 인 경우 스파이에 doNothing() 메서드를 사용할 수 있습니다. 아래를 사용하여이 주제에 대한

@Test 
    public testChildDetailsMethod(){ 
     ChildDetailsSpy childSpy = spy(new ChildDetailsSpy()); 
     doNothing().when(childSpy).validate(); 
     childDetails.setAge(20); 
     ... 
    } 

더 읽기 here를 찾을 수 있습니다.

+0

감사합니다. 이것은 내가 필요한 것입니다. – mvb13

+1

기꺼이 도와 드리겠습니다. upvote하고 도움이되고 문제가 sloved 경우 왼쪽에있는 버튼을 클릭하여 답변을 수락하십시오 :) –

관련 문제