Görünüşe göre sahte, yalnızca sahte bir nesnenin yönteminin çağrılıp çağrılmadığını ve sahte nesnenin her zaman buna benzer doReturn().when(mock object)
Ama sahte bir nesne oluşturup doReturn().when(mock object)
başka bir nesnenin yönteminin çağrıldığını tanımlayıp doğrulayabilir miyim?
İşte yapmak istediğim şey: Sahte bir ortam tanımlıyorum ve ne olursa olsun bir yanıt döndürüyorum. Ama sonra başka birObj'nin farklı yöntemlerinin farklı durumlarda çağrıldığını doğrulamak istiyorum.
Bu nasıl yapılır?
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(...);
}