首页 > 解决方案 > 如何使用 Mockito 验证函数被调用 3 次或 6 次?

问题描述

在 mockito 中,我可以做这样的事情来验证我的函数被调用了 3 次

verify(mock, times(3)).someMethod("was called three times");

但有时,它可能会被调用 6 次,导致测试失败。(这是因为测试依赖于一个 at-least-once-delivery 队列,该函数会在队列第二次投递时被调用 6 次)。

我如何断言someMethod被调用 3 次或 6 次,但如果被调用 4 次则失败?

标签: mockitointegration-testing

解决方案


我认为,您可以尝试这种行为:

try {
    Mockito.verify(mock, Mockito.times(3)).someMethod(argumentMatcher);
}
catch(TooManyActualInvocations e) {
    Mockito.verify(mock, Mockito.times(6)).someMethod(argumentMatcher);
}

推荐阅读