ऐसा लगता है कि मॉकिटो केवल यह सत्यापित करता है कि मॉक ऑब्जेक्ट की विधि को कहा जाता है या मॉक ऑब्जेक्ट में हमेशा कुछ ऐसा होता है doReturn().when(mock object)
लेकिन क्या मैं एक मॉक ऑब्जेक्ट बना सकता हूं और परिभाषित कर सकता हूं doReturn().when(mock object)
और फिर किसी अन्य ऑब्जेक्ट की विधि को सत्यापित कर सकता हूं ?
यहाँ मैं क्या करना चाहता हूँ: मैं एक mockEnvironment को परिभाषित करता हूं और जो कुछ भी होता है, उसकी प्रतिक्रिया वापस करता है। लेकिन फिर मैं दूसरे तरीकों के विभिन्न तरीकों को सत्यापित करना चाहता हूं अलग-अलग मामलों में कहा जाता है।
उसको कैसे करे?
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(...);
}