web-dev-qa-db-fra.com

Mockito: vérification avec des paramètres génériques

Avec Mockito, je peux faire ce qui suit:

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

Mais comment écrire ceci si process prend un Collection<Person> au lieu? Je ne sais pas comment l'écrire correctement. Juste obtenir des erreurs de syntaxe ...

63
Svish

Essayer:

verify(someService).process(Matchers.<Collection<Person>>any());

En fait, IntelliJ a automatiquement suggéré ce correctif lorsque j'ai tapé any()... Malheureusement, vous ne pouvez pas utiliser l'importation statique dans ce cas.

107

Essayez:

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

Depuis la version 1.8 Mockito introduit

public static <T> Collection<T> anyCollectionOf(Class<T> clazz);
25
seblm

si vous utilisez une méthode propre, vous pouvez même utiliser l'importation statique:

private Collection<Person> anyPersonCollection() {
    return any();
}

Ensuite, vous pouvez utiliser

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