我使用Mockito来测试这样的方法:
myMethod(String s, List<Integer> i);
我使用此电话:
doReturn(foo).when(bar).myMethod(anyString(), isNull(List.class))
使用isNull(Class<?> class)
方法是我的问题。因为我使用anyString(),这是一个匹配器,所以我不能通过null
。
现在我收到type safety
警告,因为使用了泛型类。我可以使用@SuppressWarning
注释摆脱它。
这个问题与Mockito相关的Java更多,但我想提供用例,我不能只使用List的实例将其传递给方法。
我首先想知道的是一个清除警告的方法。因为铸造(通用,类型橡皮擦)不是一种选择。
答案 0 :(得分:5)
使用Matchers.eq()
的通用版本:
doReturn(foo).when(bar).myMethod(anyString(), Matchers.<List<Integer>> eq(null))
使用Java 7,您必须添加见证<List<Integer>>
类型,以帮助编译器全面了解这一点。在Java 8中,这不是必需的。有关该特定方面的更多信息,请参阅this page的底部段落。