我使用 Mockito 来测试这样的方法:
myMethod(String s, List<Integer> i);
我使用这个调用:
doReturn(foo).when(bar).myMethod(anyString(), isNull(List.class))
isNull(Class<?> class)
的使用方法是我这里的问题。因为我使用 anyString(),它是一个 Matcher,所以我不能只传递 null
.
现在我得到一个 type safety
警告,因为使用了泛型类。我可以使用 @SuppressWarning
摆脱它注释。
这个问题与 Mockito 更相关,但我想提供用例,我不能只使用 List 的实例将其传递给方法。
我首先想知道的是消除警告的干净方法。因为转换(泛型、类型橡皮擦)不是一个选项。
最佳答案
使用 Matchers.eq()
的通用版本:
doReturn(foo).when(bar).myMethod(anyString(), Matchers.<List<Integer>> eq(null))
使用 Java 7,您必须添加类型见证 <List<Integer>>
帮助编译器弄清楚这一切。在 Java 8 中,这不是必需的。有关该特定方面的更多信息,请参阅 this page 的底部段落。 .
关于java - 对泛型类使用 Matchers.isNull(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28451130/