在我的应用程序中,我的代码看起来像 -
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比较了第一次调用并抛出错误
Mockito只有在您正在验证的调用实际上没有发生时才这样做。 因此,如果调用了request.setParameter("c", someObject)
,则无论其他调用如何,您的测试都将通过。 如果verify
失败,Mockito会尝试通过识别与您尝试验证的呼叫"差点未遂"的呼叫来提供帮助;但前提是verify
失败。