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

2022-08-31 11:57:31

我有这样的方法:

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

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

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

但是有没有更好的方法(没有抑制警告)? 表示某些其他方法的返回类型,该方法有时是传入的,在这些情况下是传入的。Tvoidnull


答案 1

Mockito有一个isNull匹配器,您可以在其中传递类的名称。因此,如果您需要将其与其他匹配器一起使用,正确的做法是

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

这现已弃用,请参阅下面的新方法的答案 - https://stackoverflow.com/a/41250852/1348


答案 2

大卫·华莱士的回答更新:

截至2016-12,Java 8和Mockito 2.3,

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

已弃用,并将在 Mockito 3.0 中删除

public static <T> T isNull()

相反


推荐