Daher ist es wichtig, sich frühzeitig in der Entwicklungsphase mit den Grundlagen des Unit-Tests vertraut zu machen, um die Lernkurve beim Umgang mit umfangreichen Codebasen zu vermeiden.
In diesem Tutorial führen wir Sie in das Framework des Unit-Tests mit C# und der MSTest-Testbibliothek ein. Wir erstellen eine Basisanwendung, mit der Sie lernen, wie Sie Unit-Tests erstellen, ausführen und die Ergebnisse bei einem fehlgeschlagenen oder erfolgreichen Test interpretieren.
Testumgebung
Beginnen wir mit der Diskussion der Testlösung und der Konfiguration unserer Basisanwendung.
Um die Anwendung in diesem Tutorial zu verfolgen und zu replizieren, stellen Sie sicher, dass Sie über Folgendes verfügen:
- Visual Studio installiert
- Konfigurierte .NET- und C#-Tools auf Ihrem Computer
Erstellen Sie eine Anwendung
Öffnen Sie als Nächstes Visual Studio und erstellen Sie eine neue Lösung. Für dieses Tutorial erstellen wir eine einfache Taschenrechneranwendung. Sie können der Bewerbung einen beliebigen Namen geben.
Erstellen Sie als Nächstes ein neues Projekt, wählen Sie den Projekttyp „MSTest Test Project“ aus und geben Sie ihm einen beliebigen Namen.
Stellen Sie sicher, dass Sie „Zur Lösung hinzufügen“ auswählen und die zuvor erstellte App auswählen.
Sie sollten über die Hauptanwendung und das Unit-Testing-Projekt verfügen, wie im Projektmappen-Explorer angezeigt.
Schreiben Sie den Code für die Rechneranwendung
Der nächste Schritt besteht darin, den Code für unsere Taschenrechneranwendung zu schreiben. Wir können dies in der CalcApp-Datei „program.cs“ tun.
Da wir nach einer Grundfunktionalität suchen, können wir den Quellcode wie folgt hinzufügen:
Öffentlicher Klassenrechner{
öffentlich doppelt Hinzufügen ( doppelt A , doppelt B )
{
zurückkehren A + B ;
}
öffentlich doppelt Subtrahieren ( doppelt A , doppelt B )
{
zurückkehren A - B ;
}
öffentlich doppelt Multiplizieren ( doppelt A , doppelt B )
{
zurückkehren A * B ;
}
öffentlich doppelt Teilen ( doppelt A , doppelt B )
{
Wenn ( B == 0 )
wirft eine neue DivideByZeroException aus ( ) ;
zurückkehren A / B ;
}
}
Wie Sie sich vorstellen können, erstellt der vorherige Code eine Taschenrechner-App, die die grundlegenden Rechenanwendungen ausführen kann.
Schreiben Sie die Unit-Tests
Sobald wir fertig sind, können wir die Unit-Tests für die Klasse „Calculator“ schreiben. In diesem Fall müssen wir die Tests lediglich wie folgt in die „UnitTest“-Datei des Projekts schreiben:
mit System ;Namensraum CalcApp
{
Öffentlicher Klassenrechner
{
öffentlich doppelt Hinzufügen ( doppelt A , doppelt B )
{
zurückkehren A + B ;
}
öffentlich doppelt Subtrahieren ( doppelt A , doppelt B )
{
zurückkehren A - B ;
}
öffentlich doppelt Multiplizieren ( doppelt A , doppelt B )
{
zurückkehren A * B ;
}
öffentlich doppelt Teilen ( doppelt A , doppelt B )
{
Wenn ( B == 0 )
wirft eine neue DivideByZeroException aus ( ) ;
zurückkehren A / B ;
}
}
}
Namensraum CalcTest
{
[ TestKlasse ]
öffentliche Klasse CalculatorTests
{
privater Rechnerrechner ;
[ TestInitialisieren ]
öffentlich Leere Aufstellen ( )
{
Taschenrechner = neuer Rechner ( ) ;
}
[ Testmethode ]
öffentlich Leere Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
war das Ergebnis = Taschenrechner. Hinzufügen ( 5 , 5 ) ;
Behaupten. Sind gleich ( 10 , Ergebnis ) ;
}
[ Testmethode ]
öffentlich Leere Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
war das Ergebnis = Taschenrechner. Subtrahieren ( 10 , 5 ) ;
Behaupten. Sind gleich ( 5 , Ergebnis ) ;
}
[ Testmethode ]
öffentlich Leere Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
war das Ergebnis = Taschenrechner. Multiplizieren ( 5 , 5 ) ;
Behaupten. Sind gleich ( 25 , Ergebnis ) ;
}
[ Testmethode ]
[ Erwartete Ausnahme ( Art der ( DivideByZeroException ) ) ]
öffentlich Leere Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
war das Ergebnis = Taschenrechner. Teilen ( 5 , 0 ) ;
}
[ Testmethode ]
öffentlich Leere Divide_TwoPositiveNumbers_ReturnsCorrectQuotient ( )
{
war das Ergebnis = Taschenrechner. Teilen ( 10 , 5 ) ;
Behaupten. Sind gleich ( 2 , Ergebnis ) ;
}
}
}
Abschluss
Dies ist ein grundlegendes Tutorial, das die Grundlagen des Unit-Tests in C# mit dem MSTest-Framework behandelt.