84

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

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

null他のパラメーターにマッチャーを使用するときに2番目の引数に渡されることを確認する必要があるため、これを行っています:

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

しかし、より良い方法はありますか (抑制警告なし)? T他のメソッドの戻り値の型を表します。これは時々渡されますvoidnull

4

3 に答える 3

144

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

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

これは非推奨になりました。新しい方法については、以下の回答を参照してください - https://stackoverflow.com/a/41250852/1348

于 2012-10-03T18:30:16.417 に答える
40

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

代わりは

于 2016-12-20T20:35:42.483 に答える
20

これは私のために働く:

verify(client).method(eq("String"), eq((Class<?>) null));
于 2012-10-03T12:34:32.383 に答える