mockito는 mock 객체의 메서드가 호출되는지 여부 만 확인하고 mock 객체는 항상 다음과 같은 것을 가지고 있는지 확인합니다. doReturn().when(mock object)
하지만 모의 객체를 만들고 정의한 doReturn().when(mock object)
다음 다른 객체의 메서드가 호출되었는지 확인할 수 있습니까?
내가 원하는 것은 다음과 같습니다. mockEnvironment를 정의하고 어떤 일이 발생하더라도 응답을 반환합니다. 하지만 다른 경우에 anotherObj의 다른 메서드가 호출되는지 확인하고 싶습니다.
그렇게하는 방법?
public class BaseClass {
private Environment mockEnvironment;
@Test
public void testcase () {
setMockitoEnvironment();
response = foo(mockEnvironment, argument1);
verify(anotherObj).codePath1(...);
response = foo(mockEnvironment, argument2);
verify(anotherObj).codePath2(...);
}
}
//this method successfully return a response with any input
//because I do not care how response is eventually generated,
//I only care whether code path reaches createResponse() via
//code path 1 or code path 2.
private void setMockitoEnvironment() {
mockEnvironment = mock(Environment.class);
doReturn (response).when(mockEnvironment).createResponse(for any input);
}
private Response foo(...) {
...
return createResponse(...);
}