Mockito: Verificando com parâmetros genéricos

Com Mockito eu posso fazer o seguinte:

verify(someService).process(any(Person.class)); 

Mas como eu escrevo isso se o process recebe uma Collection ? Não consigo descobrir como escrevê-lo corretamente. Apenas recebendo erros de syntax …

Experimentar:

 verify(someService).process(Matchers.>any()); 

Na verdade, o IntelliJ sugeriu automaticamente essa correção quando eu digitei any() … Infelizmente, você não pode usar a importação estática nesse caso.

Experimentar :

 verify(someService).process(anyCollectionOf(Person.class)); 

Desde a versão 1.8, o Mockito apresenta

 public static  Collection anyCollectionOf(Class clazz); 

Se você usar um método próprio, poderá usar a importação estática:

 private Collection anyPersonCollection() { return any(); } 

Então você pode usar

 verify(someService).process(anyPersonCollection()); 

Você não pode expressar isso por causa do apagamento do tipo. Mesmo se você pudesse expressá-lo no código, Mockito não teve chance de verificá-lo em tempo de execução. Você poderia criar uma interface como

 interface PersonCollection extends Collection { /* nothing */ } 

em vez disso, use isso em todo o seu código.

Edit: Eu estava errado, Mockito tem anyCollectionOf (..) que é o que você quer.