Tests mit JUnit
Automatisierte Tests prüfen Code bei jeder Änderung. JUnit ist das Standard-Framework in der Java-Welt.
Ansicht
01
Verstehen
Lies die Kernidee und das Beispiel.
02
Prüfen
Beantworte die Aktiv-Checks.
03
Anwenden
Setze die Transferaufgabe um.
Mini-Erfolg
Ein Test ist absichtlich rot geworden und nach der Korrektur wieder grün.
Warum das wichtig ist: Tests sind dein Sicherheitsnetz. Sie sagen dir sofort, ob eine Änderung etwas Altes kaputt gemacht hat.
Vorher hilfreich
Lerninhalt
Verstehen & anwenden
JUnit-Tests
@Test markiert eine Methode als Testfall.
Das Framework führt alle Tests aus und meldet Ergebnisse.
Tests leben getrennt vom Produktionscode, meist unter src/test.
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class RechnerTest {
@Test
void addiertZweiZahlen() {
assertEquals(5, Rechner.summe(2, 3));
}
}Assertions
assertEquals vergleicht erwartet und tatsächlich, assertTrue prüft Bedingungen.
assertThrows prüft, dass eine Exception geworfen wird — auch Fehlerfälle brauchen Tests.
assertThrows(IllegalArgumentException.class, () -> {
profil.setAlter(-5);
});Arrange - Act - Assert
Gute Tests haben drei Schritte: Ausgangslage aufbauen, Aktion ausführen, Ergebnis prüfen.
Jeder Test prüft genau eine Sache und trägt einen sprechenden Namen.
Vertiefung
Tests als Sicherheitsnetz
Ein Test beschreibt eine Erwartung. Gute Tests prüfen nicht nur den Normalfall, sondern auch Grenzen und Fehlerfälle. Erst dadurch geben sie Sicherheit bei Änderungen.
Arrange-Act-Assert gibt jedem Test eine klare Struktur. Ein Test sollte eine Sache prüfen und einen Namen tragen, der das Verhalten beschreibt.
@Test
void durchschnittLeererListeIstNull() {
assertEquals(0, Rechner.durchschnitt(List.of()));
}
@Test
void negativerBetragWirdAbgelehnt() {
assertThrows(IllegalArgumentException.class, () -> konto.abheben(-5));
}Merksatz: Teste das Verhalten, nicht die Implementierung. Grenz- und Fehlerfälle sind oft wertvoller als der Normalfall.
Übungsaufgabe
Drei Tests für den Notenrechner
Schreibe drei JUnit-Tests für einen Notenrechner: Normalfall, leerer Durchschnitt und ungültiger Wert.
Das soll dein Programm können
- @Test-Annotationen
- assertEquals für Normalfall
- assertThrows für einen Fehlerfall
- Sprechende Testnamen
Schreibe den Code hier oder in deiner IDE und vergleiche ihn dann mit der Lösung.
Dein Code wird automatisch auf diesem Gerät gespeichert.
Hinweis anzeigen
Für den Fehlerfall brauchst du eine Methode, die bei ungültigen Werten eine Exception wirft. Nutze assertThrows.
Lösung anzeigen
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class NotenrechnerTest {
@Test
void durchschnittBerechnetMittelwert() {
assertEquals(75.0, Notenrechner.durchschnitt(new int[]{70, 80}));
}
@Test
void leererDurchschnittIstNull() {
assertEquals(0.0, Notenrechner.durchschnitt(new int[]{}));
}
@Test
void negativePunkteWerfenFehler() {
assertThrows(IllegalArgumentException.class, () -> Notenrechner.pruefe(-1));
}
}Warum funktioniert das?
Der erste Test prüft den Normalfall, der zweite eine Grenze, der dritte einen Fehlerfall. Zusammen decken sie mehr ab als zehn Wiederholungen desselben Normalfalls.
Aktiv-Check
Teste dein Verständnis
Erkennen: Welcher Abschnitt passt?
Welcher Abschnitt passt zu diesen Begriffen?
Spaßprojekt
Notenrechner testen
Schreibe drei JUnit-Tests für deinen Notenrechner: Normalfall, Grenzfall und Fehlerfall.
Selbstcheck
Kann ich das schon?
Hake ab, was du wirklich erklären oder selbst bauen könntest.
Fortschritt
Bereit zum Abschließen?
Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.