Подтвердить что ты не робот

Как сопоставить null, переданный параметру класса <T> с помощью Mockito

У меня есть такие методы:

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

Мне нужно проверить, что null передается во второй аргумент при использовании сопоставлений для других параметров, я делал это:

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

Но есть ли лучший способ (без подавления предупреждений)? T представляет тип возврата какого-либо другого метода, который иногда void и в этих случаях передается null.

4b9b3361

Ответ 1

У Mockito есть isNull matcher, где вы можете передать имя класса. Поэтому, если вам нужно использовать его с другими помощниками, правильная вещь -

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

Это теперь устарело, см. ответ ниже для нового метода - fooobar.com/questions/99176/...

Ответ 2

Это работает для меня:

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

Ответ 3

Обновление от Дэвида Уоллеса:

Начиная с 2016-12, Java 8 и Mockito 2.3,

public static <T> T isNull(Class<T> clazz)

Устаревший и будет удален в Mockito 3.0

использовать

public static <T> T isNull()

вместо