Java 如何验证是否对模拟调用了任何方法

Java 如何验证是否对模拟调用了任何方法,java,unit-testing,junit,mockito,Java,Unit Testing,Junit,Mockito,我想检查mock上是否调用了任何方法,mock包含许多方法,我不想以这种方式编写许多调用: 验证(mock.method1() 验证(mock.method2() 目前,我正在使用这项技术,等待找到更好的解决方案: boolean isThereAnyInerraction= false; try { Mockito.verifyZeroInteractions(maock); } catch(NoInteractionsWanted e){ isThereAnyInerraction

我想检查mock上是否调用了任何方法,mock包含许多方法,我不想以这种方式编写许多调用:

验证(mock.method1()


验证(mock.method2()

目前,我正在使用这项技术,等待找到更好的解决方案:

boolean isThereAnyInerraction= false;
try {
  Mockito.verifyZeroInteractions(maock);
} catch(NoInteractionsWanted e){
  isThereAnyInerraction = true;
}
assertThat(isThereAnyInerraction).isTrue();

方法
verifyZeroInteractions(mock)
如其名称,验证没有在mock上调用任何方法。

您将测试/断言什么?基本上没什么。我不建议简单地验证你的模拟对象是否与之交互。对于一个好的单元测试,您应该验证该模拟是否按预期进行了交互,即该模拟上的每个方法都使用了正确的参数等。我不认为有任何方法可以使用Mockito执行此操作,我认为这是故意的。@G olding是否有方法检查Mockito引发的异常。verifyZeroInteractions(mock)所以我可以得出结论,在mock上调用了一个方法?我相信您可以在try-catch块中捕获异常,但在我看来,这是一种非常有技巧的方法。我的建议是只验证每个方法是单独交互的。即使只验证一半的方法也比您尝试的方法要好。