Có vẻ như mockito chỉ xác minh xem một phương thức của một đối tượng giả có được gọi hay không và đối tượng giả luôn có một cái gì đó giống như doReturn().when(mock object)
Nhưng tôi có thể tạo một đối tượng giả và xác định doReturn().when(mock object)
rồi xác minh một phương thức của một đối tượng khác được gọi không?
Đây là những gì tôi muốn làm: Tôi xác định một môi trường giả lập và trả về một phản hồi bất kể điều gì xảy ra. Nhưng sau đó tôi muốn xác minh các phương thức khác nhau của anotherObj được gọi trong các trường hợp khác nhau.
Làm thế nào để làm điều đó?
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(...);
}