Mockito:使用通用参数进行验证

Svi*_*ish 64 java generics parameters verification mockito

有了Mockito,我可以做以下事情:

verify(someService).process(any(Person.class));
Run Code Online (Sandbox Code Playgroud)

但是如果process需要一个代码Collection<Person>呢?无法弄清楚如何正确地写它.刚收到语法错误......

Tom*_*icz 106

尝试:

verify(someService).process(Matchers.<Collection<Person>>any());
Run Code Online (Sandbox Code Playgroud)

实际上,当我输入时,IntelliJ会自动建议这个修复any()...不幸的是,在这种情况下你不能使用静态导入.

  • 谢谢它有效...但上帝看起来很可怕,必须有一个更好的方法来纠正... (4认同)
  • `Matchers` 已弃用,现在应该使用 `ArgumentMatchers`。 (3认同)

小智 25

试试:

verify(someService).process(anyCollectionOf(Person.class));
Run Code Online (Sandbox Code Playgroud)

1.8版Mockito推出以来

public static <T> Collection<T> anyCollectionOf(Class<T> clazz);
Run Code Online (Sandbox Code Playgroud)