In der Softwareentwicklung ist Unit-Testing ein Prozess, der dedizierte Bereiche einer Anwendung isoliert und testet. Einheiten sind der formale Begriff für diese speziellen Abschnitte. In Ihrer Java-Anwendung ist eine Unit eine Methode.

Für Java-Entwickler stehen viele Unit-Testing-Frameworks zur Verfügung. Zu den Top-Frameworks gehört JUnit 5.

Warum ist Unit-Testing wichtig?

Wenn Sie jemals Debug-Anweisungen geschrieben haben, um den Wert einer Variablen zu drucken und zu überprüfen, herzlichen Glückwunsch. Sie haben einen Komponententest erstellt. Dieser wegwerfbare Codeabschnitt war notwendig, da Sie nicht die gewünschte Ausgabe erhalten haben.

Was aber, wenn Sie die gewünschte Ausgabe erhalten und der Code noch irgendwo einen Fehler enthält? Sie könnten die Anwendung bereitstellen und dieser Fehler könnte später zu einer Sicherheitsverletzung führen. Bei Anwendungen, die Benutzerdaten speichern, steht bei einer Sicherheitsverletzung viel auf dem Spiel.

Komponententests zielen auf jeden Abschnitt Ihrer Anwendung ab – unabhängig davon, ob er gerade einen Fehler verursacht oder nicht. Daher spielen Unit-Tests eine bedeutende Rolle in

instagram viewer
gute Softwaresicherheit.

Was ist JUnit 5?

JUnit 5 ist mehr als nur ein weiteres Unit-Testing-Framework. Es hat mehrere Unterprojekte, nämlich die JUnit-Plattform, den JUnit-Jupiter und den JUnit-Vintage. Jede dieser drei Komponenten hat einzigartige Module, die zusammenarbeiten, um das Testen für Java-Programmierer zu verbessern.

Die JUnit 5-Plattform ist in den neuesten Versionen der führenden integrierten Java-Entwicklungsplattformen (IDE) verfügbar. Die Java-IDEs, die JUnit 5 unterstützen, sind:

  • IntelliJ-IDEE
  • Finsternis
  • NetBeans
  • Visual Studio-Code

Erstellen von Komponententests mit JUnit 5

Dieses Beispielprogramm verwendet JUnit 5, um mehrere Komponententests für eine einfache Rechneranwendung zu erstellen.

Die Rechnerklasse

Paket Anwendung;

ÖffentlichkeitKlasseTaschenrechner{
Öffentlichkeitstatischinthinzufügen(int Nummer1, int num2){
Rückkehr num1 + num2;
}

Öffentlichkeitstatischintsubtrahieren(int Nummer1, int num2){
Rückkehr num1 - num2;
}

Öffentlichkeitstatischintmultiplizieren(int Nummer1, int num2){
Rückkehr num1 * num2;
}

Öffentlichkeitstatischintteilen(int Nummer1, int num2){
Rückkehr num1 / num2;
}
}

Das Java-Klasse oben führt vier statische Operationen aus: Addition, Subtraktion, Multiplikation und Division. Jede Methode nimmt zwei ganzzahlige Argumente und gibt einen einzelnen ganzzahligen Wert zurück.

Die JUnit 5-Testklasse

Paket Prüfung;

importierenstatisch org.junit. Behaupten.*;
importieren App. Taschenrechner;
importierenorg.junit.Prüfen;

ÖffentlichkeitKlasseRechnerTest{
@Prüfen
ÖffentlichkeitLeeretestHinzufügen(){
behauptenGleich(7, Taschenrechner.hinzufügen(3, 4));
}

@Prüfen
ÖffentlichkeitLeeretestSubtrahieren(){
behauptenGleich(6, Taschenrechner.subtrahieren(9, 3));
}

@Prüfen
ÖffentlichkeitLeeretestMultiplizieren(){
behauptenGleich(10, Taschenrechner.multiplizieren(5, 2));
}

@Prüfen
ÖffentlichkeitLeeretestTeilen(){
behauptenGleich(2, Taschenrechner.teilen(4, 2));
}
}

RechnerTest führt zwei wichtige Konzepte ein: die @Prüfen Anmerkung und die assertEquals() Methode. Die Annotation @Test gibt an, dass die Methode direkt darunter eine Testmethode ist. In der obigen Testklasse gibt es vier Testmethoden, eine für jede Rechenoperation.

Alle Testmethoden verwenden die Methode assertEquals(). Diese Methode akzeptiert zwei obligatorische Argumente und ein optionales drittes Argument. Das erste Argument, das der Methode assertEquals() oben gegeben wird, ist das erwartete Ergebnis, und das zweite Argument ist die Methode (oder Einheit), die Sie bewerten möchten.

Die Klasse CalculatorTest hat keine Hauptmethode, aber die JUnit-@Test-Annotationen machen jede der Testmethoden ausführbar. Das Ausführen der Klasse CalculatorTest in Eclipse erzeugt die folgende Schnittstelle:

Wie Sie sehen können, ist jeder Test erfolgreich. Es gibt vier Tests, und alle liefen ohne Fehler oder Ausfälle.

Learning Unit Testing kann Ihre Karrieremöglichkeiten erweitern

Als Entwickler ist es eine vorteilhafte Fähigkeit, zu wissen, wie man Software testet. Es wird sicherlich Ihren Arbeitsablauf verbessern und Ihren Code hoffentlich für andere benutzerfreundlicher machen. Es gibt jedoch einen Zweig der Softwareentwicklung, der sich ausschließlich auf das Testen konzentriert. Diese Ingenieure sind als Softwaretester bekannt.