So schreiben Sie Unit-Tests in C# für eine bessere Codequalität

So Schreiben Sie Unit Tests In C Fur Eine Bessere Codequalitat



Wenn die meisten von uns als Entwickler anfangen, denken wir kaum darüber nach oder widmen Unit-Tests viel Zeit. Wenn Sie jedoch in eine komplexere und gemeinsam genutzte Repository-Umgebung geraten, wird es immer wichtiger, den Code zu testen, bevor Sie ihn in der Produktion bereitstellen.

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:



  1. Visual Studio installiert
  2. 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.