如何匹配Mockito传递给Class <T>的参数的null

我有这样的方法:

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

我需要检查在使用其他参数的匹配器时将null传递给第二个参数,我一直这样做:

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

但有没有更好的办法(没有压制警告)? T表示其他一些方法的返回types,有时是void ,在这种情况下,传入null

Mockito有一个isNull匹配器 ,在那里你可以传入类的名字。 所以如果你需要与其他匹配器一起使用,那么正确的做法是

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

现在已经废弃了,请参阅下面的新方法的答案 – https://stackoverflow.com/a/41250852/1348

这适用于我:

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

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

代替