java - method - Mockito: Verificando con parámetros genéricos
spy mockito method (4)
Con Mockito puedo hacer lo siguiente:
verify(someService).process(any(Person.class));
¿Pero cómo escribo esto si el process
toma una Collection<Person>
lugar? No puedo entender cómo escribirlo correctamente. Solo obtengo errores de sintaxis ...
No puede expresar esto debido a la borradura de tipo. Incluso si pudieras expresarlo en código, Mockito no tuvo oportunidad de comprobarlo en tiempo de ejecución. Podrías crear una interfaz como
interface PersonCollection extends Collection<Person> { /* nothing */ }
en su lugar y usa esto a través de tu código.
Editar: Estaba equivocado, Mockito tiene anyCollectionOf(..) que es lo que quieres.
Tratar :
verify(someService).process(anyCollectionOf(Person.class));
Desde la versión 1.8 Mockito presenta
public static <T> Collection<T> anyCollectionOf(Class<T> clazz);
Tratar:
verify(someService).process(Matchers.<Collection<Person>>any());
En realidad, IntelliJ sugirió automáticamente esta corrección cuando escribí any()
... Desafortunadamente no puede usar la importación estática en este caso.
si usa un método propio, incluso puede usar la importación estática:
private Collection<Person> anyPersonCollection() {
return any();
}
Entonces puedes usar
verify(someService).process(anyPersonCollection());