Utiliser des classes Assert pour les tests unitaires
Utilisez les classes Assert de l’espace de noms Microsoft.VisualStudio.TestTools.UnitTesting pour vérifier des fonctionnalités spécifiques. Une méthode de test unitaire teste le code d’une méthode dans le code de votre application. Toutefois, elle ne signale l’exactitude du comportement du code que si vous incluez des instructions Assert.
Genres d’assertion
L’espace de noms Microsoft.VisualStudio.TestTools.UnitTesting fournit plusieurs genres de classes Assert.
Dans votre méthode de test, vous pouvez appeler des méthodes de la classe Microsoft.VisualStudio.TestTools.UnitTesting.Assert, telles que Assert.AreEqual. La classe Assert propose de nombreuses méthodes, dont la plupart ont plusieurs surcharges.
Comparer des chaînes et des collections
Utilisez la classe CollectionAssert pour comparer des collections d’objets ou pour vérifier l’état d’une collection.
Utilisez la classe StringAssert pour comparer et examiner des chaînes. Cette classe contient diverses méthodes utiles, telles que StringAssert.Contains, StringAssert.Matches et StringAssert.StartsWith.
Exceptions
L’exception AssertFailedException est levée à chaque échec d’un test. Un test est considéré comme un échec s’il arrive à expiration, lève une exception inattendue ou contient une instruction Assert qui produit un résultat Failed.
L’exception AssertInconclusiveException est levée chaque fois qu’un test produit un résultat Inconclusive. En général, vous ajoutez une instruction Assert.Inconclusive à un test sur lequel vous travaillez pour indiquer qu’il n’est pas encore prêt à être exécuté.
Notes
Une autre stratégie consiste à marquer un test qui n’est pas prêt à être exécuté avec l’attribut IgnoreAttribute. Toutefois, cela présente un inconvénient : vous ne pouvez pas générer facilement un rapport sur le nombre de tests qui ne sont pas implémentés.
Si vous écrivez une nouvelle classe d’exception assert, héritez de la classe de base UnitTestAssertException pour identifier plus facilement l’exception comme un échec d’assertion, et non comme une exception inattendue levée à partir de votre code de test ou de production.
Pour vérifier qu’une exception censée être levée par une méthode dans le code de votre application est effectivement levée, utilisez la méthode Assert.ThrowsException.