Kursinhalt
Spring Boot Backend
Spring Boot Backend
Modulares Testen Mit JUnit
Als wir die Architektur der Anwendung überprüften, übersprangen wir das test
-Verzeichnis, das für Tests vorgesehen war. Jetzt werden wir einen genaueren Blick darauf werfen, wie man diese Tests schreibt und was dafür erforderlich ist.
Grundlegende Konzepte
Für das Testen verwenden wir die JUnit
Bibliothek. Dies ist eines der beliebtesten Frameworks für Unit-Tests in Java-Anwendungen. Es ist einfach zu verwenden und zu integrieren, insbesondere mit Spring Boot.
Um JUnit
zu verwenden, müssen wir eine Abhängigkeit zu unserer pom.xml
Datei hinzufügen.
Jetzt sind wir bereit, unseren ersten Test in unserer Anwendung zu schreiben!
Test Schreiben
Jetzt werden wir einen Test schreiben, der nicht direkt mit unserer Anwendung zusammenhängt, aber Ihnen helfen wird, das Konzept des Testens zu verstehen.
In Spring Boot befinden sich Tests typischerweise im Verzeichnis src/test/java
, das automatisch erstellt wird, wenn das Projekt initialisiert wird. Hier können wir unseren Test erstellen.
Lassen Sie uns eine Klasse namens SimpleTest
erstellen, und darin können wir eine Test-Methode namens testSum()
erstellen.
SimpleTest
public class SimpleTest { // This method tests the sum of two integers. @Test public void testSum() { // Perform the sum of 2 and 2 and store the result in a variable. int result = 2 + 2; // Assert that the result is equal to 4. assertEquals(4, result); } }
Die @Test
Annotation in JUnit
zeigt an, dass die Methode ein Test ist und während des Testprozesses ausgeführt werden sollte.
Innerhalb des Tests wird eine Assertion verwendet: assertEquals(4, result)
, die überprüft, ob das Berechnungsergebnis dem erwarteten Wert entspricht. Wenn das result
die Erwartungen nicht erfüllt, wird der Test als nicht erfolgreich angesehen, was auf ein Problem in der Logik des Programms hinweist.
Durch das Ausführen unseres Tests können wir sehen, dass er erfolgreich bestanden wurde!
Regeln zum Schreiben von Tests
In Unit-Tests ist es wichtig, ein klares und strukturiertes Benennungssystem für Klassen und Methoden zu befolgen, damit Tests lesbar und leicht zu warten sind.
Klassennamen
Der Name der Klasse, die getestet wird, sollte den Suffix Test
enthalten. Zum Beispiel, wenn wir eine Klasse namens BookController
testen, würde die entsprechende Testklasse BookControllerTest
heißen.
Methodennamen
Testmethoden sollten beschreibend sein, damit jeder, der sie liest, verstehen kann, was getestet wird. Ein gutes Namensschema beinhaltet: (Was getestet wird) _ (Unter welchen Bedingungen) _ (Erwartetes Ergebnis).
In diesem Testnamen zeigt testCreateUser
an, dass der Prozess des Erstellens eines Benutzers getestet wird. Der nächste Teil, whenInputIsValid
, beschreibt die Bedingungen, unter denen der Test durchgeführt wird — speziell, wenn die Benutzereingabe gültig ist. Schließlich gibt shouldReturnCreatedUser
das erwartete Ergebnis an — die Methode sollte den erstellten Benutzer zurückgeben.
Zusammenfassung
Unit-Tests mit JUnit
ermöglichen die Überprüfung der Korrektheit einzelner Teile einer Anwendung in Isolation, was eine hohe Codequalität und Systemstabilität bei Änderungen sicherstellt.
JUnit
bietet praktische Werkzeuge zum Schreiben, Ausführen und Organisieren von Tests, was es zur primären Wahl für das Testen von Java-Anwendungen, einschließlich Spring Boot, macht.
1. Was bewirkt die @Test
-Annotation in JUnit?
2. Welche Namenskonvention sollte für Testklassen in JUnit verwendet werden?
Danke für Ihr Feedback!