假设我有一个类似的类
public class Wrapper<T> {
T data;
}
我有一个这样的方法调用:
public interface ThingDoer {
<T> boolean doSomething(Wrapper<T> wrapper)
}
我想在测试中模拟出来。假设我们都设置了mockito的东西,现在我正试图模拟这个名为的方法
when(thingDoer.doSomething(any(Wrapper.class))).thenReturn(true);
然而,这会给我一个警告:Unchecked assignment: 'package.Wrapper' to 'package.Wrapper<T>'
我在某个地方读到另一个建议,即使用Java8时,应该使用any()
而不是any(Wrapper.class)
。然而,通过阅读关于这两种方法的文档,any()
将接受null参数,any(Class)
将拒绝null参数,因此它们不是完全同义的。有没有一种方法可以在不收到警告的情况下排除null?
使用isNotNull()
作为匹配器。
when(thingDoer.doSomething(isNotNull())).thenReturn(true);