Mockito:使用泛型列出匹配器
Mockito提供:
when(mock.process(Matchers.any(List.class)));
如何避免警告,如果采取一个代替?process
List<Bar>
Mockito提供:
when(mock.process(Matchers.any(List.class)));
如何避免警告,如果采取一个代替?process
List<Bar>
对于 Java 8 及更高版本,这很简单:
when(mock.process(Matchers.anyList()));
对于Java 7及更低版本,编译器需要一些帮助。用:anyListOf(Class<T> clazz)
when(mock.process(Matchers.anyListOf(Bar.class)));
除上述内容外,您始终可以使用以下语法显式指定泛型:anyListOf
when(mock.process(Matchers.<List<Bar>>any(List.class)));
Java 8 最近允许基于参数进行类型推断,因此,如果您使用的是 Java 8,这可能也可以正常工作:
when(mock.process(Matchers.any()));
请记住,也不会应用任何检查,包括类型检查或空检查。在Mockito 2.x中,被更改为表示“任何Foo”,但仍然表示“任何值,包括”。any()
anyList()
any(Foo.class)
instanceof
any()
null
注意:在较新版本的 Mockito 中,上述内容已切换到 ArgumentMatchers,以避免与 .旧版本的Mockito需要继续使用如上所述。org.hamcrest.Matchers
org.mockito.Matchers