ดูเหมือนว่าม็อกกิโตจะตรวจสอบได้ว่ามีการเรียกใช้วิธีการจำลองวัตถุหรือไม่และวัตถุจำลองมักจะมีบางอย่างเช่นกัน 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(...);
}