Mockitoとマッチャーは提供しています:Mockito:リストジェネリック
when(mock.process(Matchers.any(List.class)));
をprocess
ではなくList<Bar>
をとる場合に警告を避けるために、どのように?上記のJava 8とするため
Mockitoとマッチャーは提供しています:Mockito:リストジェネリック
when(mock.process(Matchers.any(List.class)));
をprocess
ではなくList<Bar>
をとる場合に警告を避けるために、どのように?上記のJava 8とするため
、それは簡単です:下記のJava 7とのために
when(mock.process(Matchers.anyList()));
、コンパイラは、ヘルプのビットを必要とします。 anyListOf(Class<T> clazz)
を使用します。
when(mock.process(Matchers.anyListOf(Bar.class)));
上記anyListOf
に加えて、あなたは常に、この構文を使用して明示的にジェネリックを指定することができます。
when(mock.process(Matchers.<List<Bar>>any(List.class)));
のJava 8は、新たなパラメータに基づいて推論を入力できますので、あなたは、Javaを使用している場合8、これは同様に動作することがあります。
when(mock.process(Matchers.any()));
覚えておいてくださいany()
もanyList()
ワットでもないことタイプチェックやヌルチェックなどのチェックを適用します。 Mockito 2.xではany(Foo.class)
が "any instanceof
Foo"を意味するように変更されましたが、any()
はまだ "null
を含む任意の値"を意味します。
注:org.hamcrest.Matchers
との名前の衝突を避けるため、上記のバージョンはMockitoの新しいバージョンでArgumentMatchersに切り替えました。古いバージョンのMockitoは上記のようにorg.mockito.Matchers
を使い続ける必要があります。
'' 'Matchers.any()' ''は非常に便利です! – MBach
Matchersは廃止されました。mockito "Using ArgumentMatchers。このクラスは、Hamcrestのorg.hamcrest.Matchersクラスと名前の衝突を避けるため、非推奨です。このクラスはバージョン3.0で削除される可能性があります。 https://static.javadoc.io/org.mockito/mockito-core/2.7.21/org/mockito/Matchers.html – oddmeter
@JeffBowman汗がかからず、他人のためのメモを残してください:) – oddmeter
注:これはMockito 2では廃止予定です。* Mockito 3では削除されます。Java 8コンパイラがその型を推測できるので廃止予定です。 – Kip
@Kipありがとう私は答えを更新しました – artbristol
@artbristol anySet()はanyList()と同じように動作するはずですか?私はJava 8で、Eclipse IDEで警告がスローされます。 –