Im使用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更与Java相关,但我想提供一个用例,在这个用例中,我不能只使用List的一个实例将其传递给方法。
首先,我想知道的是一个干净的方法来摆脱警告。因为强制转换(泛型,类型橡皮擦)不是一个选项。
使用Matchers.eq()
:的通用版本
doReturn(foo).when(bar).myMethod(anyString(), Matchers.<List<Integer>> eq(null))
使用Java7,您必须添加类型见证<List<Integer>>
来帮助编译器解决这一切。在Java 8中,这不是必需的。有关该特定方面的更多信息,请参阅本页底部的段落。