次のようなメソッドがあります。
public <T> method(String s, Class<T> t) {...}
他のパラメーターにマッチャーを使用する場合、null
が2番目の引数に渡されることを確認する必要があることを確認しました。
@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));
しかし、より良い方法はありますか(警告を抑制しないで)? T
は他のメソッドの戻り値の型を表します。これはvoid
である場合があり、これらの場合はnull
が渡されます。
Mockitoには isNull
matcher があり、クラスの名前を渡すことができます。したがって、他のマッチャーで使用する必要がある場合、正しいことは
verify(client).method(eq("String"),isNull(Class<?>.class));
これは現在非推奨です。新しいメソッドについては以下の回答を参照してください- https://stackoverflow.com/a/41250852/1348
David Wallaceの回答からの更新:
2016年12月現在、Java 8およびMockito 2.3、
public static <T> T isNull(Class<T> clazz)
非推奨 であり、Mockito 3.0で削除されます
つかいます
public static <T> T isNull()
代わりに
これは私のために働く:
verify(client).method(eq("String"), eq((Class<?>) null));