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.

Stellen Sie sich einen einfachen Test vor, um verschiedene Zahlen zu summieren. Der Code könnte so aussehen:

Parametrisierter Test in Junit

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 eines parametrisierten JUnit-Tests

Following Code zeigt ein Beispiel für einen parametrisierten Test. Es testet die sum()-Methode der Arithmetic-Klasse:

Schritt 1) Erstellen Sie eine Klasse. In diesem Beispiel geben wir zwei Zahlen ein, indem wir die Methode sum (int,int) verwenden, die die Summe der angegebenen Zahlen zurückgibt

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Schritt 2) Erstellen Sie eine parametrisierte Testklasse

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Code Erklärung

  • Codezeile 11: Kommentieren Sie Ihre Testklasse mit @runWith(Parameterized.class).
  • Codezeile 13: Deklarieren Sie die Variable „firstNumber“ als privat und geben Sie sie als int ein.
  • Codezeile 14: Deklarieren Sie die Variable „secondNumber“ als privat und geben Sie sie als int ein.
  • Codezeile 15: Deklarieren Sie die Variable „expectedResult“ als privat und geben Sie sie als int ein.
  • Codezeile 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 den Aufruf von JUnit-Lebenszyklusmethoden wie Setup (Ressourcen zuordnen) und Teardown (Ressourcen freigeben) verantwortlich.

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

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Schritt 4) Erstellen Sie eine statische Methode, die Testdaten generiert und zurückgibt.

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Codezeile 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.

Codezeile 30: Die richtigen @ 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

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Code-Erklärung:

  • Codezeile 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.
  • Codezeile 36: Verwenden der @Test-Annotation zum Erstellen unseres Tests.
  • Codezeile 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:

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Code-Erklärung:

  • Codezeile 8: Deklarieren der Hauptmethode des Klassentests, mit dem unser JUnit-Test ausgeführt wird.
  • Codezeile 9: Beim Ausführen von Testfällen mit JunitCore.runclasses wird der Name der Testklasse als Parameter verwendet (in unserem Beispiel verwenden wir Airthematic.class).
  • Codezeile 11: Verarbeiten des Ergebnisses mithilfe einer for-Schleife und Ausdrucken des fehlgeschlagenen Ergebnisses.
  • Codezeile 13: Ausdrucken des erfolgreichen Ergebnisses.

Ausgang:

Hier ist die Ausgabe, die einen erfolgreichen Test ohne Fehlerverfolgung zeigt, wie unten dargestellt:

Schritte zum Erstellen eines parametrisierten JUnit-Tests

Sehen Sie sich das Ergebnis auf der Konsole an, das die Addition zweier Zahlen zeigt:-

JUnit-parametrisierter Test

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