3

私はそのような方法を持っています:

<T extends Entity> boolean putObject(T value);

しかし、mockitoを使用してそれをモックする方法を見つけることができませんか?anyObject()およびany()はエラーを生成します:

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 
Invalid use of argument matchers!
1 matchers expected, 3 recorded.

モック:

when(service.putObject(any(ProcessingTransaction.class))).thenReturn(true);

それはどのように機能しますか?

4

1 に答える 1

3

ほとんどの場合、テストの早い段階(または以前のテスト)で、Mockitoメソッドへの不適切な形式の呼び出しが1つまたは2つあります。引数マッチャー(のような)を作成するMockitoメソッドを呼び出すとany()、マッチャーは内部データ構造に追加されます。その後、実際に使用されたときに削除されます。

Mockitoが1つではなく3つの引数マッチャーを見つけたという事実は、いくつかの引数マッチャーを作成したが、それらを使用しなかったことを示しています。たとえば、when(...)なしで使用するthenReturn()と、これが発生する可能性があります。しかし、他にもたくさんのケースがあります。

間違ったことを正確に見つける手助けが必要な場合は、テストコードをさらに投稿する必要があります。

于 2012-08-20T09:38:58.930 に答える