web-dev-qa-db-ja.com

MockitoでClass <T>のパラメーターに渡されたnullを照合する方法

次のようなメソッドがあります。

public <T> method(String s, Class<T> t) {...}

他のパラメーターにマッチャーを使用する場合、nullが2番目の引数に渡されることを確認する必要があることを確認しました。

@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));

しかし、より良い方法はありますか(警告を抑制しないで)? Tは他のメソッドの戻り値の型を表します。これはvoidである場合があり、これらの場合はnullが渡されます。

74
blank

Mockitoには isNull matcher があり、クラスの名前を渡すことができます。したがって、他のマッチャーで使用する必要がある場合、正しいことは

verify(client).method(eq("String"),isNull(Class<?>.class));

これは現在非推奨です。新しいメソッドについては以下の回答を参照してください- https://stackoverflow.com/a/41250852/1348

141

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()

代わりに

27
mike rodent

これは私のために働く:

verify(client).method(eq("String"), eq((Class<?>) null));
18
Eric