我正在测试一个方法A
,该方法调用另一个类B
的另一个方法C
,该方法返回Object
类型D
。我想使用B()
模拟对mockito
的调用。我怎么做?
代码:
function A()
{
/*some code here*/
C c = createC();
D d= null;
d = c.B(args);
/*some code here*/
}
答案 0 :(得分:0)
首先,不是创建C
的实际实例,而是创建Test Double
版本,如下所示:
// Let's import Mockito statically so that the code looks clearer
import static org.mockito.Mockito.*;
// mock creation
C mockedC = mock(C.class);
然后在mockedC
上发生某些事情时定义期望,例如:
when(mockedC.B(args)).thenReturn(new D());
它说,只要有人在B(args)
上致电mockedC
,就会返回D
的实例。
最后,您可以验证与预期互动的实际互动,例如:
verify(mockedC)...
有关详细信息,请参阅docs。