我有这样的方法:
public <T> method(String s, Class<T> t) {...}
当对其他参数使用匹配器时,我需要检查null
是否传递给了第二个参数,我一直在这样做:
@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));
但是有没有更好的方法(没有抑制警告)?T
表示某些其他方法的返回类型,有时是void
,在这些情况下传入null
Mockito有一个isNull
匹配器,您可以在其中传递类的名称。因此,如果你需要将其与其他匹配器一起使用,正确的做法是
verify(client).method(eq("String"),isNull(Class<?>.class));
现在已经弃用了,请参阅下面的新方法答案-https://stackoverflow.com/a/41250852/1348
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()
而是
这对我有效:
verify(client).method(eq("String"), eq((Class<?>) null));