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