Mockito参数匹配器,用于匹配任何具有泛型的类型,不包括null



假设我有一个类似的类

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);

相关内容

最新更新