78 votes

Tester sans exception attendue

Je souhaite créer un test NUnit pour m'assurer que ma fonction ne lève pas d'exception. Y a-t-il une manière spécifique de le faire, ou je devrais simplement écrire

 [Test]
public void noExceptionTest() {
  testedFunction();
}

et cela réussira si aucune exception n'est levée ?

129voto

sll Points 30638
Assert.DoesNotThrow(() => { /* custom code block here*/});

OU juste la méthode

 Assert.DoesNotThrow(() => CallMymethod());

Pour plus de détails, voir NUnit Exception Asserts

40voto

Schneider Points 3812

En utilisant les assertions de type modèle de contrainte NUnit 3.0, le code ressemblerait à ceci :

Assert.That(() => SomeMethod(actual), Throws.Nothing);

Cet exemple est tiré du wiki NUnit .

7voto

dasblinkenlight Points 264350

Ne pas lever d'exception est le cours normal de l'action. Votre test vérifiera avec succès qu'une exception n'est pas levée.

3voto

Phil Points 19299

Vous avez raison. S'il y a une exception, le test échouera.

Sauf si vous le précisez

 [ExpectedException( typeof(YourException) ) ]
public void TestMethod()
{ 
   ...
}

Ou comme le dit @sll, vous utilisez le plus spécifique

 Assert.DoesNotThrow

affirmation .

1voto

Anton Points 607

Oui, pas d'exceptions levées -> test réussi. S'il y avait un bloc try-catch sans re-lancer, ça passera aussi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X