Unit Testing mit xUnit & VB.NET

Unit Tests prüfen einzelne Funktionseinheiten Ihres Programms. In VB.NET nutzen wir hierfür meist das xUnit-Framework, um sicherzustellen, dass jede Methode genau das tut, was sie soll.

1. Das AAA-Prinzip (Arrange, Act, Assert)

Ein strukturierter Test folgt immer dem AAA-Muster, um die Lesbarkeit zu erhöhen.

Imports Xunit

Public Class RechnerTests
            <Fact>
            Public Sub Add_ZweiZahlen_LiefertSumme()
            ' Arrange (Vorbereiten)
            Dim rechner As New Taschenrechner()

            ' Act (Ausführen)
            Dim ergebnis = rechner.Add(10, 5)

            ' Assert (Prüfen)
            Assert.Equal(15, ergebnis)
            End Sub
End Class

2. Test-Projekt organisieren

Tests werden in einem separaten Projekt abgelegt, damit der produktive Code sauber bleibt.

  • TheCat_Solution
    • TheCat_Logic (VB-Projekt)
      • Taschenrechner.vb
    • TheCat_Tests (xUnit-Projekt)
      • RechnerTests.vb

3. Fortgeschritten: Theory & InlineData

Mit Theory können Sie eine Testmethode mit verschiedenen Datensätzen mehrfach ausführen.

<Theory>
<InlineData(1, 1, 2)>
<InlineData(10, 20, 30)>
<InlineData(-5, 5, 0)>
Public Sub Add_MehrereWerte_BerechnetKorrekt(a As Integer, b As Integer, erwartet As Integer)
            Dim rechner As New Taschenrechner()
            Dim ergebnis = rechner.Add(a, b)
            Assert.Equal(erwartet, ergebnis)
End Sub
Zurück zu Modul 9 Übersicht Weiter zu Modul 11: Best Practices