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

qv7cva1a  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(434)

假设我有这样一节课

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() 将接受空参数和 any(Class) 将拒绝空参数,因此它们不是同义词。有没有办法排除空值而不得到警告?

eqfvzcg8

eqfvzcg81#

使用 isNotNull() 作为匹配者。

when(thingDoer.doSomething(isNotNull())).thenReturn(true);

相关问题