Dans NUnit, vous pouvez utiliser :
Assert.DoesNotThrow(<expression>);
pour vérifier que votre code ne lève pas d'exception. Bien que le test échouerait si une exception était levée même si aucun Assert ne l'entourait, l'intérêt de cette approche est que vous pouvez alors distinguer les attentes non satisfaites des bogues dans vos tests, et vous avez la possibilité d'ajouter un message personnalisé qui sera affiché dans la sortie de votre test. Une sortie de test bien formulée peut vous aider à localiser les erreurs dans votre code qui ont provoqué l'échec d'un test.
Je pense qu'il est valable d'ajouter des tests pour s'assurer que votre code ne lève pas d'exceptions ; par exemple, imaginez que vous validez une entrée et que vous devez convertir une chaîne entrante en un long. Il peut arriver que la chaîne soit nulle, ce qui est acceptable, et vous voulez donc vous assurer que la conversion de la chaîne ne lève pas d'exception. Il y aura donc du code pour gérer cette occasion, et si vous n'avez pas écrit de test pour cela, vous manquerez la couverture d'un élément important de la logique.
0 votes
Utilisez-vous MSTest ou NUnit ?
3 votes
Dans MSTest, les exceptions non capturées provoquent automatiquement l'échec des tests. Essayez-vous de tenir compte des exceptions attrapées ?
0 votes
Vous pouvez consulter la rubrique "try-catch for C#", qui vous indiquera comment gérer les exceptions lancées ou non lancées.
1 votes
Si NUnit, regardez dans Assert.That( lambda ).Throws.Nothing (bien que je pense que cela a changé récemment).