Kursinhalt
Java JUnit Bibliothek. Arten von Tests
Java JUnit Bibliothek. Arten von Tests
@VorJedem
Lassen Sie uns weitermachen mit der Erstellung von Unit-Tests für die Testklasse und die Methode, die Palindroms in umgekehrter Reihenfolge nach Länge sortiert. Wir haben eine Methode, die die Funktionalität dieser Methode überprüft. Wir müssen noch ein paar weitere Fälle testen, wie diese Methode funktioniert:
- Testen Sie die Funktionalität der Methode, wenn wir ihr eine leere Liste übergeben;
- Testen Sie die Funktionalität der Methode, wenn wir ihr eine Liste ohne Palindrome übergeben;
- Testen Sie die Funktionalität der Methode, wenn wir ihr eine Liste von Palindromen mit unterschiedlichen Längen übergeben.
Hinweis
Wenn wir Methoden erstellen, müssen wir ihnen geeignete Namen geben, die vollständig widerspiegeln, wie die Methode funktioniert. Zum Beispiel im Fall einer leeren Liste werden wir den Unit-Test so benennen:
testFilterAndSortPalindromesWithEmptyList
.
Beginnen wir mit dem zweiten Testfall, wenn wir eine leere Liste an die Methode übergeben:
Wie Sie sehen können, übergeben wir leere Listen sowohl als " input
" als auch als " expected
." Mit anderen Worten, wir erwarten, dass die Methode eine leere Liste zurückgibt. Genau das überprüft der Test; wir übergeben eine leere Liste und erwarten, eine leere Liste zurückzubekommen.
Als nächstes erstellen wir einen Test, der eine Liste übergibt, die überhaupt keine Palindrome enthält. In diesem Fall erwarten wir ebenfalls, eine leere Liste zu erhalten:
Hinweis
Achten Sie auf die Benennung dieses Tests. Der Name gibt an, was der Test tut und welcher Fall getestet wird.
Hier testen wir auch diese Methode mit der Erwartung, eine leere Liste zu erhalten. Im Fall, dass es keine Palindrome gibt, sollte die Methode keine Liste zurückgeben, da alle Elemente während der Sortierung herausgefiltert werden.
@BeforeEach
Sie haben vielleicht bemerkt, dass wir in jedem Test die gleichen Aktionen ausführen. Im JUnit-Framework gibt es eine Annotation, die es uns ermöglicht, diesen Prozess etwas zu vereinfachen. Genauer gesagt, automatisieren wir den Prozess der Erstellung von input
, expected
und actual
Variablen mit der @BeforeEach
Annotation. Die in der Methode angegebenen Aktionen, die mit dieser Annotation versehen ist, werden vor jedem Test ausgeführt.
Zum Beispiel können wir die Erstellung von drei Listen wie folgt angeben:
Wir haben die SetUp()
-Methode mit @BeforeEach
annotiert, was bedeutet, dass diese Methode jedes Mal vor jeder Testmethode ausgeführt wird. Mit einer solchen Methode können wir die Listenerstellung aus jedem der Tests entfernen und so unsere Arbeit etwas erleichtern.
Aber das wird deine Aufgabe sein.
Aufgabe
Deine Aufgabe ist es, die Listenerstellung aus den Tests zu entfernen und einen Unit-Test zu schreiben, der überprüft, ob das Sortieren in der Methode korrekt funktioniert. Mit anderen Worten, du musst einen Test erstellen, der überprüft, wie sich die Methode mit Palindromen unterschiedlicher Längen verhält.
Danke für Ihr Feedback!