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


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

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

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

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

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

3 60

3 ответа:

Mockito есть isNull matcher, где вы можете передать имя класса. Так что если вам нужно использовать его с другими вычислителей, правильно составляет

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

это теперь устарело, см. ответ ниже для нового метода -https://stackoverflow.com/a/41250852/1348

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

по состоянию на 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));