C# Unit Testing – Eine TDD Einleitung mit NUnit

C# unit testing

In diesem Artikel werden wir uns auf die Verwendung von C# Unit Testing konzentrieren und dir zeigen, wie du selbst Unit Tests erstellen und ausführen kannst.

Unit-Tests sind ein wichtiger Bestandteil der Softwareentwicklung, insbesondere in der objektorientierten Programmierung. Sie ermöglichen es, kleine Teile des Codes (die sogenannten “Units”) isoliert zu testen und somit Fehler schneller und einfacher zu finden.

Mit meinem kostenlosen Videokurs zu den Grundlagen von C# findest du den perfekten Einstieg in die Softwareentwicklung mit C#. Egal, ob du C# als Hobby, für die Uni oder für eine neue Karriere lernen möchtest, mit diesem Kurs lernst du C# schnell, einfach und professionell.
Mit meinem kostenlosen Videokurs zu den Grundlagen von C# findest du den perfekten Einstieg in die Softwareentwicklung mit C#.

Warum C# Unit Testing wichtig ist

Bevor wir uns mit der tatsächlichen Erstellung von Unit-Tests beschäftigen, lass uns kurz über die Vorteile sprechen, die sie mit sich bringen.

Erhöhte Codequalität: Indem du Unit-Tests erstellst, die bestimmte Funktionalitäten deines Codes testen, kannst du sicherstellen, dass dieser immer wie erwartet funktioniert.

Zeitersparnis: Wenn du eine Änderung am Code vornimmst, kannst du mit Unit-Tests schnell überprüfen, ob diese Auswirkungen auf andere Teile des Codes hat.

Bessere Wartbarkeit: Unit-Tests ermöglichen es dir, schneller Fehler zu finden und zu beheben, wenn du später Änderungen an deinem Code vornimmst.

Wie man Unit-Tests erstellt

Zu aller erst, benötigst du ein Testframework. In diesem Artikel werden wir uns auf die Verwendung von Unit-Tests in C# mit dem Framework NUnit konzentrieren und dir zeigen, wie du sie selbst erstellen und ausführen kannst.

Um Unit-Tests in C# mit NUnit zu erstellen, musst du zunächst das NUnit-Framework sowie das NUnit-Testadapter-Paket in dein Projekt einbinden. Dies kann über den NuGet-Paketmanager erfolgen. Du kannst alternativ auch direkt ein NUnit-Testing Projekt mit der Visual Studio Vorlage erstellen.

Ein einfaches Beispiel für einen Unit-Test könnte so aussehen:

[TestFixture]
public class TestClass {

   [Test]
   public void TestMethod1()
   {
       //Arrange
       int a = 2;
       int b = 3;
       int expectedResult = 5;

       //Act
       int result = a + b;

       //Assert
       Assert.AreEqual(expectedResult, result);
   }
}

Erklärung: In diesem Beispiel testen wir eine einfache Methode:

Der erste Teil des Tests (Arrange) dient dazu, die Variablen für den Test vorzubereiten.

Im nächsten Schritt (Act) führen wir die tatsächliche Funktion aus, die wir testen möchten.

Im letzten Schritt (Assert) vergleichen wir das erwartete Ergebnis mit dem tatsächlichen Ergebnis. Wenn die beiden Ergebnisse übereinstimmen, wird der Test als erfolgreich angesehen und keine Fehlermeldung ausgegeben.

Hinweis: Es gibt auch andere Assert-Methoden, die du verwenden kannst, wie z.B. “Assert.IsTrue()” oder “Assert.IsNotNull()”. Mit diesen Methoden kannst du unterschiedliche Arten von Ergebnissen testen.

Die [TestFixture] und [Test] Attribute

[TestFixture] ist eine NUnit-Attributklasse, die verwendet wird, um eine Klasse als Testklasse zu kennzeichnen. Eine Testklasse enthält eine oder mehrere Testmethoden, die bestimmte Funktionalitäten oder Berechnungen in der zu testenden Anwendung überprüfen.

[Test] ist ebenfalls ein NUnit-Attribut, das verwendet wird, um eine Methode in einer Testklasse als Testmethode zu kennzeichnen. Jede Testmethode enthält die Schritte zum Initialisieren der Testumgebung (Arrange), Ausführen des zu testenden Codes (Act) und Überprüfen des Ergebnisses (Assert). Jede Testmethode muss mit dem [Test] Attribut gekennzeichnet sein, um von NUnit als Testmethode erkannt zu werden.

Wie man Unit Tests ausführt

Um deine Unit-Tests auszuführen, musst du einfach auf die Schaltfläche “Test ausführen” in deiner Entwicklungsumgebung (vermutlich Visual Studio) klicken (“Tests” → “Alle Tests ausführen”). NUnit wird dann alle Tests automatisch ausführen und dir das Ergebnis anzeigen. Es gibt auch die Möglichkeit, die Tests über die Befehlszeile auszuführen.

c# unit tests ausführen

Nachdem die Tests ausgeführt wurden, kannst du genau sehen, welche Tests bestanden haben und welche Tests noch Fehler aufweisen (hier musst du dann den Code noch anpassen).

Tipps für gutes C# Unit Testing

  • Jeder Test sollte eine einzelne Funktionalität testen. Vermeide es, mehrere Tests in einem Testfall zusammenzufassen.
  • Stelle sicher, dass jeder Test unabhängig von anderen Tests ausgeführt werden kann. Vermeide es, dass Tests von anderen Tests abhängig sind.
  • Verwende sinnvolle Namen für deine Testmethoden, damit man schnell erkennt, was getestet wird.
  • Versuche, Testdaten so einfach wie möglich zu halten. Vermeide es, komplexe Testdaten zu verwenden, die die Verständlichkeit des Tests beeinträchtigen

Fazit

Unit-Tests sind ein wichtiger Bestandteil der Softwareentwicklung und ermöglichen es, kleine Teile des Codes isoliert zu testen. Mit NUnit kannst du einfach Unit-Tests in C# erstellen und ausführen.

Indem du die Tipps in diesem Artikel befolgst, kannst du sicherstellen, dass deine Unit-Tests effektiv sind und dir dabei helfen, die Qualität deines Codes zu erhöhen.

✅ Lerne alle Grundlagen der C# Programmierung ✅ Der ideale Einstieg in die Softwareentwicklung ✅ 30+ HD Videolektionen ✅ Komplett kostenlos ✅ Sofortiger Zugriff
Der C# Grundlagenkurs
Kostenlos
Overlay Image
Der C# Grundlagenkurs
Kostenlos
✅ Alle Grundlagen der C# Programmierung ✅ Der ideale Einstieg in die Entwicklung ✅ 30+ HD Videolektionen ✅ Komplett kostenlos ✅ Sofortiger Zugriff
Overlay Image