Unit Test avec Visual Studio

C’est quoi un Unit Test ou test unitaire ? En effet, un unit test, c’est simplement du code pour tester une unité ou un bloc code sur sa fonctionnalité.

Une unité peut-être :

  • Methode
  • Property
  • Classe
  • Assembly

Pour comprendre quand on utilise les tests unitaires, on peut regarder les étapes du modèle du cycle en V,  un modèle conceptuel de gestion de projet afin d’améliorer la création d’un logiciel. Les unit tests sont donc utilisés après le codage (ou avant en utilisant TDD en fait). Les tests suivants sont les tests d’intégration, qui testent les modules indépendants du logiciel dans l’ensemble.

vmodel

NUnit et MSTest

NUnit et MSTest, sont enfin des unit testing frameworks qui sont basé sur le platform .NET et qui sont gratuit à utiliser dans le Visual Studio. Dans son solution on peut ajouter un projet test ou créer une solution avec un projet et un test projet à la fois. Pour utiliser NUnit il faut néanmoins ajouter un package NuGet dans son solution.

NUnit fournit des classes et des outils pour faciliter de créer les tests unitaires. Néanmoins il faut écrire les tests unitaires soi-même dans les langages de programmation .NET comme C# ou VB.NET…

En plus les frameworks de tests unitaires viennent avec un test runner pour voir le résultat d’un test

Voici le codage pour une classe test d’un controller dans un projet ASP.NET MVC avec MSTest qui est exécuté dans 3 étapes : Arrange, Act, Assert.

[TestClass]
public class HomeControllerTest
{
   [TestMethod]
   public void Index()
   {
      // Arrange
      HomeController controller = new HomeController();
      
      // Act
      ViewResult result = controller.Index() as ViewResult;

      // Assert
      Assert.IsNotNull(result);
   }
}