mockito 对带参数的方法不做任何贡献

Kau*_*mar 3 java junit mockito powermockito

class A{
     public void aa(B b){}
     public void bb(){}
}
Run Code Online (Sandbox Code Playgroud)

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

aa()由于函数有参数,我应该使用什么。

Daw*_*ica 5

作为一般规则,您不需要doNothing,因为默认情况下模拟在调用其方法时“不执行任何操作”。doNothing仅当您使用的是间谍而不是模拟时,才需要编写。

在 Mockito 1.x 中,你可以这样写

doNothing().when(yourSpyGoesHere).aa(any(B.class));
Run Code Online (Sandbox Code Playgroud)

这有效地禁用了对 的任何调用aa

Mockito 2 中的含义any已更改,因此您现在需要编写nullable而不是any.

doNothing().when(yourSpyGoesHere).aa(nullable(B.class));
Run Code Online (Sandbox Code Playgroud)