Mockito.verify选择性方法调用

时间:2012-04-17 21:19:18

标签: mockito verify invocation

在我的应用程序中,我的代码看起来像 -

request.setParameter("a",false);//line1
request.setParameter("b",someObject);//line2
request.setParameter("c",someObject);//line3
request.setParameter("d",someObject);//line4

我已经模拟了请求对象,现在我想验证是否调用了line3。我不关心其他线路,在我试过的测试类中 -     Mockito.verify(request).setParameter("c",someObject) 但是我收到了错误 -

Argument(s) are different! Wanted:
request.setParameter("c",com.test.MyObject@fec107);
-> at XXX

Actual invocation has different arguments:
request.setParameter("a", false);

出于某种原因,Mockito比较了第一次调用和抛出错误

1 个答案:

答案 0 :(得分:5)

如果您正在验证的调用实际上没有发生,Mockito将只会这样做。因此,如果调用request.setParameter("c", someObject),则无论其他调用如何,您的测试都会通过。如果verify失败,Mockito会尝试通过识别您尝试验证的电话“接近错过”的电话来提供帮助;但如果verify失败,