Zum Inhalt springen
Lektion 16 von 26 12 Min. Mittel Zur Übung Mit Codebeispiel

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

1

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.

@TestJUnit
Erster 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));
    }
}
2

Assertions

assertEquals vergleicht erwartet und tatsächlich, assertTrue prüft Bedingungen.

assertThrows prüft, dass eine Exception geworfen wird — auch Fehlerfälle brauchen Tests.

assertEqualsassertTrueassertThrows
Fehlerfall testen
assertThrows(IllegalArgumentException.class, () -> {
    profil.setAlter(-5);
});
3

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.

arrange-act-assert

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.

Grenzfall testen
@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
Drei Tests für den Notenrechner.java
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

1/6

Erkennen: Welcher Abschnitt passt?

Welcher Abschnitt passt zu diesen Begriffen?

@TestJUnit
Tipp: Erst erinnern, dann prüfen. Fehler sind Teil des Lernens.

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.

0 von 3 geschafft

Fortschritt

Bereit zum Abschließen?

Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.

</> Learn-Program © 2026 · Lizenziert unter CC BY-NC-SA 4.0

Rechtliches & Lizenz