Mockito - 检查是否在对象上调用了任何方法(访问了对象)

Ant*_*hyn 8 java junit unit-testing mockito

我想编写一个测试,将模拟对象A传递给测试B下的对象,并检查是否调用了A的任何方法.为了给出一些上下文,B类被设计为基于一组参数以特定方式操纵A,并且在某些条件下它根本不应对它做任何事情.所以我的目标是测试那个场景.我知道如何测试是否调用了特定方法:

verify(A, never()).myMethod();
Run Code Online (Sandbox Code Playgroud)

但是我无法找到确保方法A的NONE被调用的方法.有没有办法做到这一点?

The*_*111 11

我相信这verifyZeroInteractions可能就是你要找的东西.在你的情况下,你打电话Mockito.verifyZeroInteractions(A).

public static void verifyZeroInteractions(java.lang.Object... mocks)

Verifies that no interactions happened on given mocks. 
Run Code Online (Sandbox Code Playgroud)

http://static.javadoc.io/org.mockito/mockito-core/2.8.47/org/mockito/Mockito.html#verifyZeroInteractions(java.lang.Object中...)

  • verifyZeroInteraction 方法从 3.0.1 版本开始已不再使用,请使用 verifyNoInteractions 代替。 (2认同)