【问题标题】:Mockito - check if ANY method was called on an object(object was accessed)Mockito - 检查是否在对象上调用了任何方法(访问了对象)
【发布时间】:2015-02-28 09:07:22
【问题描述】:

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

verify(A, never()).myMethod();

但我找不到方法来确保没有调用 A 的任何方法。有没有办法做到这一点?

【问题讨论】:

    标签: java unit-testing junit mockito


    【解决方案1】:

    我相信verifyNoInteractions 可能就是您想要的。在你的情况下,你会打电话给Mockito.verifyNoInteractions(A)

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

    Verifies that no interactions happened on given mocks. 
    

    https://www.javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#verifyNoInteractions-java.lang.Object...-

    【讨论】:

    • 所以我应该调用 Mockito.verifyZeroInteractions(A) 吗?
    • 是的,应该这样做。
    • 嘿,你是对的,它完全有效!正是我想要的。
    • 方法 verifyZeroInteraction 自 3.0.1 版本起已弃用。请改用 verifyNoInteractions。
    猜你喜欢
    • 2014-09-16
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2011-02-07
    相关资源
    最近更新 更多