.NET Core - Testbibliothek

In diesem Kapitel werden wir unsere StringLibrary testen. Dazu müssen wir unsere Projekte neu anordnen, damit wir der Standardkonvention folgen können.

Lassen Sie uns die öffnen global.json Datei.

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

Oben in dieser Datei sehen Sie die Projekteinstellungen und es wird ein Ordner wie z src und test standardmäßig.

Da wir laut Konvention Projekte in diesen Ordnern haben müssen, ist dies die neue Konvention, die als Teil von .NET Core verwendet wird.

Im Projektmappen-Explorer können Sie sehen, dass sich sowohl das Konsolenprojekt als auch das Bibliotheksprojekt im befinden src Ordner, während sich das Testprojekt im Inneren befindet test Mappe.

Die Projektstruktur im Projektmappen-Explorer stellt nicht dar, wo die Projekte physisch auf der Festplatte vorhanden sind. Lassen Sie uns jetzt den Lösungsordner öffnen und Sie werden das sehenStringLibrary Projekt ist nicht in der src Mappe.

Sie können das beides sehen src und test Ordner werden der Konvention zugeordnet, die in der global.jsonDatei. Wir haben jedoch ein Projekt StringLibrary, das nicht den Konventionen entspricht. Fügen wir nun die hinzuStringLibrary Projekt innerhalb der src Mappe.

Im src-Ordner befinden sich zwei Projekte, und wir müssen das Problem beheben, damit wir alle Projekte ordnungsgemäß verwenden können. Kehren wir zu Visual Studio zurück, klicken Sie mit der rechten Maustaste auf das StringLibrary-Projekt und wählen Sie die Option Entfernen. Es wird nicht gelöscht, sondern nur das Projekt entfernt.

Klicken Sie nun mit der rechten Maustaste auf den Ordner src und wählen Sie Add → Existing Project…

Navigieren Sie zum StringLibrary-Projekt, das sich jetzt in der befindet src Ordner, wählen Sie die StringLibrary.csproj Datei und klicken Open.

Wir müssen jetzt den Verweis von entfernen StringLibrary von dem project.json Datei der Konsolen-App.

{ 
   "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" 
      } 
   } 
}

Speichern Sie die Änderungen und fügen Sie eine Referenz von hinzu StringLibrary wieder in Ihrem Konsolenprojekt.

{ 
   "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" 
      } 
   } 
}

Jetzt sollte alles wieder funktionieren und Sie können bauen StringLibrary und dann FirstApp(Konsolenprojekt) ohne Fehler. Testen wir nun die StringLibrary-Funktionalität mit xunit. Wir müssen unserem Testprojekt eine Referenz von StringLibrary hinzufügen. Klicken Sie mit der rechten Maustaste auf das Projekt "Referenzen von StringLibraryTests" und wählen Sie "Referenz hinzufügen".

Klicken OK das wird eine Referenz von hinzufügen StringLibraryzu unserem Testprojekt. Lassen Sie uns nun den folgenden Code in der ersetzenTests.cs Datei.

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()); 
      } 
   } 
}

Sie können sehen, dass wir drei Testmethoden haben, die die Funktionalität von StringLibrary testen. Klicken wir aufRun All Link und Sie sehen die folgende Ausgabe im Test Explorer.

Sie können die Tests auch über die Befehlszeile ausführen. Lassen Sie uns die Eingabeaufforderung öffnen und die ausführendotnet test Befehl.