.NET Core - Bibliothèque de tests

Dans ce chapitre, nous allons tester notre StringLibrary et pour ce faire, nous devons réorganiser nos projets afin de pouvoir suivre la convention par défaut.

Ouvrons le global.json fichier.

{ 
   "projects": [ "src", "test" ], 
   "sdk": { 
      "version": "1.0.0-preview2-003131" 
   } 
}

En haut de ce fichier, vous verrez les paramètres du projet et il configure un dossier tel que src et test par défaut.

Comme par convention, nous devons avoir des projets dans ces dossiers, il s'agit de la nouvelle convention et qui sera utilisée dans le cadre de .NET Core.

Dans l'Explorateur de solutions, vous pouvez voir que le projet de console et le projet de bibliothèque se trouvent dans le src dossier pendant que le projet de test est à l'intérieur test dossier.

Et la structure des projets dans l'Explorateur de solutions ne représente pas l'emplacement physique des projets sur le disque. Ouvrons maintenant le dossier Solution et vous verrez queStringLibrary le projet n'est pas à l'intérieur du src dossier.

Vous pouvez voir que les deux src et test les dossiers correspondent à la convention spécifiée dans le global.jsonfichier. Cependant, nous avons un projet StringLibrary qui n'est pas conventionnel. Ajoutons maintenant leStringLibrary projet à l'intérieur du src dossier.

Dans le dossier src, nous avons deux projets et nous devons résoudre le problème afin que nous puissions utiliser tous les projets correctement. Revenons à Visual Studio et cliquez avec le bouton droit sur le projet StringLibrary et sélectionnez l'option Supprimer. Il ne le supprimera pas, mais ne supprimera que le projet.

Maintenant, faites un clic droit sur le dossier src et sélectionnez Add → Existing Project…

Accédez au projet StringLibrary qui se trouve maintenant dans le src dossier, sélectionnez le StringLibrary.csproj fichier et cliquez Open.

Nous devons maintenant supprimer la référence de StringLibrary du project.json fichier de l'application console.

{ 
   "version": "1.0.0-*", 
   "buildOptions": { 
      "emitEntryPoint": true 
   }, 
   "dependencies": { 
      "Microsoft.NETCore.App": { 
         "type": "platform", 
         "version": "1.0.1" 
      }, 
      "NuGet.CommandLine": "3.5.0", 
      "System.Runtime.Serialization.Json": "4.0.3" 
   }, 
   "frameworks": { 
      "netcoreapp1.0": { 
         "dependencies": { }, 
         "imports": "dnxcore50" 
      } 
   } 
}

Enregistrez les modifications, puis ajoutez une référence de StringLibrary à nouveau dans votre projet de console.

{ 
   "version": "1.0.0-*", 
   "buildOptions": { 
      "emitEntryPoint": true 
   }, 
   "dependencies": { 
      "Microsoft.NETCore.App": { 
         "type": "platform", 
         "version": "1.0.1" 
      }, 
   "NuGet.CommandLine": "3.5.0", 
      "System.Runtime.Serialization.Json": "4.0.3" 
   }, 
   "frameworks": { 
      "netcoreapp1.0": { 
         "dependencies": { 
            "StringLibrary": { 
               "target": "project" 
            } 
         }, 
         "imports": "dnxcore50" 
      } 
   } 
}

Maintenant, tout devrait fonctionner à nouveau et vous pouvez construire StringLibrary et alors FirstApp(projet de console) sans aucune erreur. Testons maintenant la fonctionnalité StringLibrary en utilisant xunit. Nous devons ajouter une référence à StringLibrary dans notre projet de test. Cliquez avec le bouton droit sur le projet Références du projet StringLibraryTests et sélectionnez Ajouter une référence…

Cliquez sur OK qui ajoutera une référence de StringLibraryà notre projet de test. Remplaçons maintenant le code suivant dans leTests.cs fichier.

using System; 
using Xunit; 
using StringLibrary; 
  
namespace Tests { 
   public class Tests { 
      [Fact] 
      public void StartsWithUpperCaseTest() { 
         string input = "Mark"; 
         Assert.True(input.StartsWithUpper()); 
      } 
      [Fact] 
      public void StartsWithLowerCaseTest() { 
         string input = "mark"; 
         Assert.True(input.StartsWithLower()); 
      } 
      [Fact] 
      public void StartsWithNumberCaseTest() { 
         string input = "123"; 
         Assert.True(input.StartsWithNumber()); 
      } 
   } 
}

Vous pouvez voir que nous avons trois méthodes de test qui testeront la fonctionnalité de StringLibrary. Cliquons sur leRun All lien et vous verrez la sortie suivante dans l'Explorateur de tests.

Vous pouvez également exécuter les tests à partir de la ligne de commande. Ouvrons l'invite de commande et exécutons ledotnet test commander.