有没有办法将 verifyNoInteractions 与超时结合起来

时间:2021-05-05 07:40:13

标签: java mockito

我有一段在 CompletableFuture#runAsync 块中运行的 Java 代码,我想验证在此块中,从未调用过特定服务。

通常要验证它是否被实际调用,我可以使用 timeout VerificationMode 来断言 runAsync 何时可能完成

verify(myService, timeout(500)).methodX(param);

但就我而言,我想检查服务是否没有交互。通常这是通过 verifyNoInteractions(myService); 完成的,但它会立即触发并且很有可能出现误报。

解决方法是,对于服务中的每个方法,我键入使用 times(0) VerificationMode 例如

verify(myService, timeout(500).times(0)).methodX(param);
verify(myService, timeout(500).times(0)).methodY(param);
verify(myService, timeout(500).times(0)).methodZ(param);

但出于所有显而易见的原因,这是一个糟糕的主意。

我知道另一种可能性是添加 Thread.sleep(500);,但如果可能,我想使用 Mockito API。我只是没在其他地方看到过。

0 个答案:

没有答案