2

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

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 比较第一次调用并抛出错误

4

1 回答 1

5

只有当您验证的调用实际上没有发生时,Mockito 才会这样做。因此,如果request.setParameter("c", someObject)已被调用,则无论其他调用如何,您的测试都会通过。如果verify失败,Mockito 会尝试通过识别与您尝试验证的呼叫“接近未命中”的呼叫来提供帮助;但只有verify失败的情况下。

于 2012-04-18T06:40:12.313 回答