-2

テスト中の別のメソッド内で使用されるメソッドの when ステートメントを設定しようとしています。私がテストしているメソッド内で、参照していないリストを作成しているため、モックできません。上記のメソッド内で使用する場合、このリストの内容を検証したいと思います。when メソッドの一部として以下を使用しましたが、いずれの場合も "InvalidUseOfMatchersException" が発生しました。私は何が欠けていますか?

Matchers.eq(mockKeys) //mockKeys is a List<String> with expected contents
Matchers.anyListOf(String.class)

Mockito.when(myDaoImpl.getRecords([either of the above])).thenReturn(mockResult);

正確なコードを提供することを拒否しなければなりません。

4

2 に答える 2

1
List<String> mockKeys = createMockKeys(); // defined elsewhere
when(myDaoImpl.getRecords(Matchers.eq(mockKeys))).thenReturn(mockResult);
when(myDaoImpl.getRecords(mockKeys)).thenReturn(mockResult); // implicitly equal
when(myDaoImpl.getRecords(Matchers.anyListOf(String.class)))
    .thenReturn(mockResult);

上記はすべて問題ありません。あなたが投稿したものは、本質的に間違っているようには見えません。getRecords最終的なものであるか、コードを囲む Mockito や Matchers の使用など、目に見えない問題である可能性が高くなります。できるだけ多くのコードを投稿できないのは理解できますが、より具体的な回答を提供するのが難しくなる可能性があります.

デバッグのためにMockito.validateMockitoUsage()、スタブの前後に を呼び出します。これは、問題が実際にあなたが考えている回線上にあり、前後の通話による汚染ではないことを確認するのに役立ちます.

于 2013-11-12T22:36:30.857 に答える