Zum Inhalt springen
Lektion 14 von 15 12 Min. Fortgeschritten Mit Codebeispiel

Tests mit pytest

Tests sagen dir sofort, ob eine Änderung etwas Altes kaputt macht. pytest macht das in Python besonders knapp.

Ansicht

01

Verstehen

Lies die Kernidee und das Beispiel.

02

Prüfen

Beantworte die Aktiv-Checks.

03

Anwenden

Setze die Transferaufgabe um.

Lerninhalt

Verstehen & anwenden

1

Der erste Test

pytest findet Dateien, die mit test_ beginnen, und Funktionen, die mit test_ beginnen.

Ein Test besteht oft aus Arrange, Act und Assert: vorbereiten, ausführen, mit assert prüfen.

pytestasserttest_
test_noten.py
# noten.py
def durchschnitt(werte):
    return sum(werte) / len(werte)

# test_noten.py
from noten import durchschnitt

def test_durchschnitt():
    assert durchschnitt([1, 2, 3]) == 2
2

Grenzfälle und parametrize

Gute Tests prüfen nicht nur den Normalfall, sondern auch leere Listen, einzelne Werte und ungültige Eingaben.

@pytest.mark.parametrize führt denselben Test mit mehreren Wertepaaren aus. Das hält Grenzfälle kompakt.

parametrizeGrenzfallFixture
Mehrere Fälle testen
import pytest
from noten import beste

@pytest.mark.parametrize("werte, erwartet", [
    ([1, 2, 3], 1),
    ([4], 4),
])
def test_beste(werte, erwartet):
    assert beste(werte) == erwartet
3

Fixtures und Struktur

Eine Fixture bereitet Daten oder Ressourcen für mehrere Tests vor.

pytest injiziert sie über den Parameter.

Fixtures gehören oft in conftest.py. Tests sollen unabhängig sein und nicht auf der Reihenfolge anderer Tests beruhen.

fixtureconftest.pytmp_path
Fixture für ein Konto
import pytest

@pytest.fixture
def konto():
    return {"stand": 100}

def test_einzahlen(konto):
    konto["stand"] += 50
    assert konto["stand"] == 150

Aktiv-Check

Teste dein Verständnis

1/6

Erkennen: Welcher Abschnitt passt?

Welcher Abschnitt passt zu diesen Begriffen?

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

Transfer

Mini-Projekt: Wortzähler mit Tests

Schreibe einen Wortzähler und sichere ihn mit pytest ab. Teste Normalfall, Großschreibung und leeren Text.

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