Matchers.isNull() 用于泛型 类
Use of Matchers.isNull() for generic classes
我正在使用 Mockito 测试这样的方法:
myMethod(String s, List<Integer> i);
我用这个电话:
doReturn(foo).when(bar).myMethod(anyString(), isNull(List.class))
isNull(Class<?> class)
方法的使用是我这里的问题。因为我使用了 anyString(),它是一个匹配器,所以我不能只传递 null
.
现在我收到 type safety
警告,因为使用了通用 class。我可以使用 @SuppressWarning
注释摆脱它。
这个问题比 Mockito 更 Java 相关,但我想提供用例,我不能只使用 List 的实例将它传递给方法。
我首先想知道的是摆脱警告的干净方法。因为转换(泛型,类型橡皮擦)不是一个选项。
使用Matchers.eq()
的通用版本:
doReturn(foo).when(bar).myMethod(anyString(), Matchers.<List<Integer>> eq(null))
使用 Java 7 你必须添加类型 witness <List<Integer>>
来帮助编译器解决这一切。在 Java 8 中,这不是必需的。有关该特定方面的更多信息,请参阅 this page.
的底部段落
我正在使用 Mockito 测试这样的方法:
myMethod(String s, List<Integer> i);
我用这个电话:
doReturn(foo).when(bar).myMethod(anyString(), isNull(List.class))
isNull(Class<?> class)
方法的使用是我这里的问题。因为我使用了 anyString(),它是一个匹配器,所以我不能只传递 null
.
现在我收到 type safety
警告,因为使用了通用 class。我可以使用 @SuppressWarning
注释摆脱它。
这个问题比 Mockito 更 Java 相关,但我想提供用例,我不能只使用 List 的实例将它传递给方法。
我首先想知道的是摆脱警告的干净方法。因为转换(泛型,类型橡皮擦)不是一个选项。
使用Matchers.eq()
的通用版本:
doReturn(foo).when(bar).myMethod(anyString(), Matchers.<List<Integer>> eq(null))
使用 Java 7 你必须添加类型 witness <List<Integer>>
来帮助编译器解决这一切。在 Java 8 中,这不是必需的。有关该特定方面的更多信息,请参阅 this page.