Mockito: verifica con parametri generici

Con Mockito posso fare quanto segue:

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

Ma come scrivo questo se il process richiede invece una Collection ? Non riesco a capire come scriverlo correttamente. Ottenere solo errori di syntax …

Provare:

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

In realtà, IntelliJ ha suggerito automaticamente questa correzione quando ho digitato any() … Purtroppo in questo caso non è ansible utilizzare l’importazione statica.

Provare :

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

Dalla versione 1.8 introduce Mockito

 public static  Collection anyCollectionOf(Class clazz); 

se utilizzi un metodo personalizzato, puoi persino utilizzare l’importazione statica:

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

Quindi puoi usare

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

Non è ansible esprimere questo a causa della cancellazione del tipo. Anche se potessi esprimerlo in codice, Mockito non ha avuto la possibilità di controllarlo in fase di esecuzione. Potresti creare un’interfaccia simile

 interface PersonCollection extends Collection { /* nothing */ } 

invece e utilizzare questo in tutto il codice.

Edit: Ho sbagliato, Mockito ha anyCollectionOf (..) che è quello che vuoi.