class A{
public void aa(B b){}
public void bb(){}
}
对于模拟方法bb()
,我使用了doNothing().when(A).bb();
。
我应该对函数aa()
使用什么,因为它有参数。
答案 0 :(得分:3)
作为一般规则,您不应该需要doNothing
,因为默认情况下模拟调用方法时“无”。如果您正在使用间谍而不是模拟,则只需要编写doNothing
。
在Mockito 1.x中,你可以写
doNothing().when(yourSpyGoesHere).aa(any(B.class));
有效禁用对aa
的任何调用。
不幸的是,any
的含义在Mockito 2中有所改变,而且这种结构已不再可用。据我所知,Mockito团队没有提供任何等同于any
的“旧”含义。
我所知道的最好的是将它与额外的存根结合起来处理参数为null的特殊情况。
doNothing().when(yourSpyGoesHere).aa(any(B.class));
doNothing().when(yourSpyGoesHere).aa(null);