J'ai une méthode avec un type de retour void
. Il peut également générer un certain nombre d'exceptions, aussi j'aimerais tester ces exceptions. Toutes les tentatives ont échoué pour la même raison:
La méthode lorsque (T) dans le type Stubber n'est pas applicable pour les arguments (void)
Des idées comment je peux obtenir la méthode pour lancer une exception spécifiée?
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
Les parenthèses sont mal placées. Tu dois utiliser
doThrow(new Exception()).when(mockedObject).methodReturningVoid(...);
^
et pas
doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));
^
Ceci est expliqué dans la documentation
Si vous vous êtes déjà demandé comment utiliser le nouveau style BDD de Mockito:
willThrow(new Exception()).given(mockedObject).methodReturningVoid(...));
Et pour référence future, il peut être nécessaire de lancer une exception puis de ne rien faire:
willThrow(new Exception()).willNothing().given(mockedObject).methodReturningVoid(...));