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 に答える