💡 1. Professionelles Unit Testing mit xUnit
xUnit ist der moderne Standard in der .NET-Welt. Tests nutzen Fluent Assertions und datengetriebene Theorien:
public class CalculatorTests {
private readonly Calculator _calc = new();
// 1. Einfacher isolierter Testfall:
[Fact]
public void Add_TwoPositiveNumbers_ReturnsSum() {
int result = _calc.Add(2, 3);
Assert.Equal(5, result);
}
// 2. Datengetriebener parametrisierter Test:
[Theory]
[InlineData(2, true)]
[InlineData(3, false)]
[InlineData(0, true)]
public void IsEven_Numbers_EvaluatesCorrectly(int number, bool expected) {
bool result = _calc.IsEven(number);
Assert.Equal(expected, result);
}
// 3. Exception Testing:
[Fact]
public void Divide_ByZero_ThrowsDivideByZeroException() {
Assert.Throws(() => _calc.Divide(10, 0));
}
}
Ein Auto geht erst in Serienproduktion, wenn die Crashtests für Frontal-, Seiten- und Heckaufprall bestanden sind. `[Fact]` testet den Frontalaufprall; `[Theory]` testet ihn mit 30, 50 und 100 km/h!
⚡ 2. Quick-Cheat-Sheet
| Attribut | Einsatzzweck | Beispiel |
|---|---|---|
[Fact] | Test ohne Parameter | Prüft eine feste Bedingung |
[Theory] | Test mit Parametern | Wird für jeden Datensatz erneut ausgeführt |
[InlineData(...)] | Liefert Testdaten für Theory | [InlineData(10, 20, 30)] |
Assert.Throws | Prüft Exception | Fängt erwarteten Fehler ab |
⚠️ 3. Häufige Stolperfallen (Gotchas & Anti-Patterns)
In xUnit gilt: Assert.Equal(expected, actual). Wer sie vertauscht, bekommt bei Testfehlschlägen verwirrende Diffs angezeigt.
Testet ein Testfall 10 verschiedene Dinge gleichzeitig, verschleiert der erste Fehlschlag alle weiteren Fehler. Halte Tests fokussiert!
🧠 4. Diagnostischer Selbst-Check
Überprüfe dein Verständnis von Sprach-Features, Speicherverwaltung und Enterprise-Architektur, bevor du den Code in der Web-IDE schreibst.