0Pricing
C# Academy · Lektion

xUnit/MSTest: Einrichtung und Assertions

Lernen Sie den Aufbau von Tests (Arrange-Act-Assert), sehen Sie, wie Assertions Tests fehlschlagen lassen, und übertragen Sie die Konzepte auf MSTest-/xUnit-Attribute.

xUnit/MSTest: Einrichtung und Assertions ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.

Was ist ein Unit-Test?

Ziel: Kleine, wiederholbare Unit-Tests schreiben.

  • Ein separates Testprojekt verwendet MSTest oder xUnit
  • Jeder Test prüft ein Verhalten
  • Verwenden Sie aussagekräftige Namen und Assertions

AAA-Muster

Tests folgen Arrange → Act → Assert. Hier wird eine Assertion mit einer einfachen Prüfung simuliert.

using System;

public static class MathUtil
{
  // Method under test
  public static int Add(int a, int b)
  {
    return a + b;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Arrange
    int a = 2;
    int b = 3;
    int expected = 5;

    // Act
    int actual = MathUtil.Add(a, b);

    // Assert (manual check for this console demo)
    if (actual == expected)
      Console.WriteLine("PASS: Add returned " + actual);
    else
      Console.WriteLine("FAIL: expected " + expected + " but got " + actual);
  }
}

Verhalten von Assertions

Eine Assertion löst bei einer Abweichung eine Ausnahme aus. Echte Frameworks funktionieren ähnlich (umfangreichere API, bessere Berichte).

using System;

public static class Assert
{
  public static void AreEqual(int expected, int actual)
  {
    if (expected != actual)
      throw new Exception("AreEqual failed: expected " + expected + ", actual " + actual);
  }

  public static void IsTrue(bool condition, string message)
  {
    if (!condition) throw new Exception("IsTrue failed: " + message);
  }
}

public static class MathUtil
{
  public static int Mul(int a, int b) { return a * b; }
}

public class Program
{
  public static void Main(string[] args)
  {
    try
    {
      int r = MathUtil.Mul(2, 4);
      Assert.AreEqual(8, r);                 // pass
      Assert.IsTrue(r % 2 == 0, "even");     // pass
      Console.WriteLine("All assertions passed.");
    }
    catch (Exception ex)
    {
      Console.WriteLine("TEST FAILED: " + ex.Message);
    }
  }
}

Beispiel für erfolgreiche Tests

Jeder Test prüft ein Verhalten. In echtem MSTest/xUnit markiert ein fehlschlagendes Assert den Test als rot.

using System;

public static class StringUtil
{
  public static string Repeat(string s, int n)
  {
    if (n < 0) throw new ArgumentOutOfRangeException("n");
    string r = "";
    for (int i = 0; i < n; i++) r += s;
    return r;
  }
}

public static class Assert
{
  public static void AreEqual(string expected, string actual)
  {
    if (expected != actual)
      throw new Exception("AreEqual failed: expected [" + expected + "], actual [" + actual + "]");
  }
}

public class Program
{
  static void TestRepeat_Happy()
  {
    string got = StringUtil.Repeat("ab", 3);
    Assert.AreEqual("ababab", got); // pass
  }

  static void TestRepeat_EmptyTimesZero()
  {
    string got = StringUtil.Repeat("x", 0);
    Assert.AreEqual("", got); // pass
  }

  public static void Main(string[] args)
  {
    try { TestRepeat_Happy(); Console.WriteLine("PASS: Happy"); } catch (Exception ex) { Console.WriteLine("FAIL: Happy -> " + ex.Message); }
    try { TestRepeat_EmptyTimesZero(); Console.WriteLine("PASS: Zero"); } catch (Exception ex) { Console.WriteLine("FAIL: Zero -> " + ex.Message); }
  }
}

Zuordnung von MSTest und xUnit

MSTest-Grundlagen:

  • [TestClass] für die Klasse
  • [TestMethod] für jeden Test
  • Assert.AreEqual/IsTrue/AreNotEqual…

xUnit-Grundlagen:

  • [Fact] für eine Testmethode
  • Assert.Equal/True/False…
  • Kein Klassenattribut für Tests erforderlich

Tipps zu Benennung und Umfang

Tipps:

  • Benennen Sie Tests nach dem Muster Method_Scenario_ExpectedResult
  • Eine assert-Anweisung oder ein Verhalten pro Test
  • Halten Sie Tests klein und unabhängig

Assertions verursachen Fehlschläge

Schnelltest: Was lässt einen Unit-Test in MSTest oder xUnit tatsächlich fehlschlagen?

Zusammenfassung

Zusammenfassung: Verwenden Sie das AAA-Muster, vergleichen Sie erwartete und tatsächliche Ergebnisse mit Assertions und ordnen Sie Tests MSTest ([TestMethod]) oder xUnit ([Fact]) zu.

Häufig gestellte Fragen

Ist die Lektion „xUnit/MSTest: Einrichtung und Assertions“ kostenlos?

Ja — der vollständige Text von „xUnit/MSTest: Einrichtung und Assertions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „xUnit/MSTest: Einrichtung und Assertions“?

Lernen Sie den Aufbau von Tests (Arrange-Act-Assert), sehen Sie, wie Assertions Tests fehlschlagen lassen, und übertragen Sie die Konzepte auf MSTest-/xUnit-Attribute. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.

Wie lange dauert die Lektion „xUnit/MSTest: Einrichtung und Assertions“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. xUnit/MSTest: Einrichtung und Assertions
  2. Fakes über Interfaces und Testdaten-Builder
  3. Fehlschlagende Tests debuggen
← Zurück zu C# Academy