J'ai des méthodes comme celles-ci:
public <T> method(String s, Class<T> t) {...}
J'ai besoin de vérifier que null
est passé au deuxième argument lors de l'utilisation de correspondeurs pour les autres paramètres, je l'ai déjà fait:
@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));
Mais existe-t-il un meilleur moyen (sans supprimer les avertissements)? T
représente le type de retour d'une autre méthode, qui est parfois void
et dans ces cas, null
est transmis.
Mockito a un isNull
matcher , où vous pouvez passer le nom de la classe. Donc, si vous avez besoin de l’utiliser avec d’autres partenaires, la bonne chose à faire est
verify(client).method(eq("String"),isNull(Class<?>.class));
Ceci est maintenant obsolète, voir la réponse ci-dessous pour la nouvelle méthode - https://stackoverflow.com/a/41250852/1348
Mise à jour de la réponse de David Wallace:
À compter de 2016-12, Java 8 et Mockito 2.3,
public static <T> T isNull(Class<T> clazz)
est obsolète et sera supprimé de Mockito 3.0
utilisation
public static <T> T isNull()
au lieu
Cela fonctionne pour moi:
verify(client).method(eq("String"), eq((Class<?>) null));