对泛型类使用Matchers.isNull()



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中,这不是必需的。有关该特定方面的更多信息,请参阅本页底部的段落。

相关内容

  • 没有找到相关文章

最新更新