JUnit Parametrisierter Test mit Beispiel unter Verwendung von @Parametern
Was ist ein parametrisierter Test in Junit?
Bei einem parametrisierten Test wird derselbe Test immer wieder mit unterschiedlichen Werten ausgefรผhrt. Es hilft Entwicklern, Zeit bei der Ausfรผhrung desselben Tests zu sparen, der sich nur in seinen Eingaben und erwarteten Ergebnissen unterscheidet.
Mit parametrisierten Tests kann man eine Testmethode einrichten, die Daten aus einer Datenquelle abruft.
Betrachten Sie einen einfachen Test zum Summieren verschiedener Zahlen. Der Code kรถnnte wie folgt aussehen:
Der obige Ansatz fรผhrt zu viel Redundanz.
Wir brauchen einen einfachen Ansatz und. Mit parametrisierten Tests kรถnnen Sie einfach eine Methode zur Eingabe von 10 Dateneingaben hinzufรผgen und Ihr Test wird 10 Mal automatisch ausgefรผhrt.
Schritte zum Erstellen einer parametrisierten JUnit Test
Der folgende Code zeigt ein Beispiel fรผr einen parametrisierten Test. Er testet die sum()-Methode der Arithmetikklasse:
Schritt 1) Erstellen Sie eine Klasse. In diesem Beispiel geben wir zwei Zahlen mit der Methode sum (int,int) ein, die die Summe der gegebenen Zahlen zurรผckgibt
Schritt 2) Erstellen Sie eine parametrisierte Testklasse
Code Erlรคuterung
- Code Linie 11: Kommentieren Sie Ihre Testklasse mit @runWith(Parameterized.class).
- Code Linie 13: Deklarieren Sie die Variable โfirstNumberโ als privat und geben Sie sie als int ein.
- Code Linie 14: Deklarieren Sie die Variable โsecondNumberโ als privat und geben Sie sie als int ein.
- Code Linie 15: Deklarieren Sie die Variable โexpectedResultโ als privat und geben Sie sie als int ein.
- Code Linie 16: Deklarieren der Variablen โairthematicโ als privat und als Typ โAirthematicโ.
@ RunWith(Klassenname.Klasse): @ RunWith Annotation wird verwendet, um den Namen seiner Runner-Klasse anzugeben. Wenn wir keinen Typ als Parameter angeben, wรคhlt die Laufzeit aus BlockJunit4ClassRunner standardmรครig.
Diese Klasse ist dafรผr verantwortlich, dass Tests mit einer neuen Testinstanz ausgefรผhrt werden. Es ist fรผr das Aufrufen verantwortlich JUnit Lebenszyklusmethoden wie Setup (Ressourcen zuordnen) und Teardown (Ressourcen freigeben).
Zum Parametrisieren mรผssen Sie mit @RunWith Anmerkungen erstellen und die zu testende erforderliche .class รผbergeben
Schritt 3) Erstellen Sie einen Konstruktor, der die Testdaten speichert. Es speichert 3 Variablen
Schritt 4) Erstellen Sie eine statische Methode, die Testdaten generiert und zurรผckgibt.
Code Linie 32,33: Erstellen eines zweidimensionalen Arrays (Bereitstellen von Eingabeparametern zum Hinzufรผgen). Mit der asList-Methode konvertieren wir die Daten in einen Listentyp. Da der Rรผckgabetyp der Methodeneingabe Sammlung ist.
Code Linie 30: Die Verwendung von @ Parameter Annotation, um einen Satz Eingabedaten fรผr die Ausfรผhrung unseres Tests zu erstellen.
Die durch die Annotation @Parameters identifizierte statische Methode gibt eine Sammlung zurรผck, wobei jeder Eintrag in der Sammlung die Eingabedaten fรผr eine Iteration des Tests darstellt.
Betrachten Sie das Element
{1,2,3}
Hier
ersteNummer =1
zweiteNummer=2
erwartetes Ergebnis = 3
Hier wird jedes Array-Element einzeln an den Konstruktor รผbergeben, da die Klasse mehrmals instanziiert wird.
Schritt 5) Der komplette Code
Code Erlรคuterung:
- Code Linie 25: Verwenden der @Before-Annotation zum Einrichten der Ressourcen (hier Airthematic.class). Die @Before-Annotation wird hier verwendet, um vor jedem Testfall ausgefรผhrt zu werden. Es enthรคlt die Voraussetzungen fรผr den Test.
- Code Linie 36: Verwenden der @Test-Annotation zum Erstellen unseres Tests.
- Code Linie 39: Erstellen einer Assert-Anweisung, um zu รผberprรผfen, ob unsere Summe unseren Erwartungen entspricht.
Schritt 6) Erstellen Sie eine Test-Runner-Klasse, um einen parametrisierten Test auszufรผhren:
Code Erlรคuterung:
- Code Linie 8: Deklarieren der Hauptmethode des Klassentests, der unsere ausfรผhren wird JUnit Test.
- Code Linie 9: Beim Ausfรผhren von Testfรคllen mit JunitCore.runclasses wird der Name der Testklasse als Parameter รผbernommen (in unserem Beispiel verwenden wir Airthematic.class).
- Code Linie 11: Verarbeiten des Ergebnisses mithilfe einer for-Schleife und Ausdrucken des fehlgeschlagenen Ergebnisses.
- Code Linie 13: Ausdrucken des erfolgreichen Ergebnisses.
Ausgang:
Hier ist die Ausgabe, die einen erfolgreichen Test ohne Fehler anzeigt. trace wie unten angegeben:
Sehen Sie sich das Ergebnis auf der Konsole an, das die Addition zweier Zahlen zeigt: -
Zusammenfassung
Der parametrisierte Test ermรถglicht es Entwicklern, denselben Test immer wieder mit unterschiedlichen Werten auszufรผhren.
Wichtige Anmerkungen, die wรคhrend der Parametrisierung verwendet werden sollen
- @ RunWith
- @ Parameter









