class A{
     public void aa(B b){}
     public void bb(){}
}


对于模拟方法bb(),我使用了doNothing().when(A).bb();

函数aa()应该使用什么,因为它有参数。

最佳答案

通常,您不需要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);

09-05 18:31