tableau comparatif :
Fonctionnalité | thenReturn | thenAnswer |
---|---|---|
Syntaxe | when(mock.method()).thenReturn(value); | when(mock.method()).thenAnswer(answer); |
Renvoyer une valeur | Oui | Oui |
Répondre avec lambda | Non | Oui |
Exceptions | thenThrow(Exception.class) | thenThrow(Exception.class) |
Vérification des appels de méthode | verify(mock).method() | verify(mock, times(1)).method() |
Vérification des paramètres | verify(mock).method(expectedParam) | verify(mock).method(argThat(matcher)) |
Utilisation pour les mock finaux | Non | Oui |
Possibilité de retourner des valeurs en fonction des arguments | Non | Oui |
Risque de NullPointerException si la méthode mockée renvoie null | Oui | Non |
Erreurs d'utilisation potentielles | Retourne toujours la même valeur, peu utile pour des méthodes avec des effets de bord | Peut être plus difficile à comprendre pour les débutants, risque de dépasser la portée des tests unitaires |
Exemples | when(mock.getAge()).thenReturn(25); | when(mock.getAge()).thenAnswer(i -> 25); |
Vérification des appels de méthode avec des paramètres | verify(mock).setAge(25); | verify(mock).setAge(argThat(matcher)) |
Note :
Aucun commentaire:
Enregistrer un commentaire
to criticize, to improve