У меня есть такие методы:
public <T> method(String s, Class<T> t) {...}
Что мне нужно проверить, что null
передается второму аргументу при использовании сопоставителей для других параметров, я делал это:
@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));
Но есть ли лучший способ (без предупреждений о подавлении)? T
представляет тип возвращаемого значения какого-либо другого метода, который иногда void
и в этих случаях null
передается.
java
unit-testing
mocking
mockito
пустой
источник
источник
null
(вместоany(Class.class)
)?Ответы:
Обновление из ответа Дэвида Уоллеса:
По состоянию на 2016–2012 годы Java 8 и Mockito 2.3,
public static <T> T isNull(Class<T> clazz)
это Устаревшее и будет удален в Mockito 3.0
использовать
public static <T> T isNull()
вместо
источник
(Integer) isNull()
вместоisNull( Integer.class )
.org.mockito.Mockito.<String>isNull()
В Mockito есть
isNull
сопоставитель , в который можно передать имя класса. Поэтому, если вам нужно использовать его с другими сопоставителями, правильнее будет сделатьverify(client).method(eq("String"),isNull(Class<?>.class));
Теперь это устарело, см. Ответ ниже для нового метода - qaru.site/questions/4123 / ...
источник
(String) isNull()
.isNull(String.class)
и(String) isNull()
эквивалентны. Выбирайте то, что вам больше подходит.Это работает для меня:
verify(client).method(eq("String"), eq((Class<?>) null));
источник