Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Einen Test für eine Funktion schreiben

Nach dieser Lektion: Ich kann einen Test schreiben, der eine Funktion prüft.

Lektion, 50 Min.Keine Befehle

Der Gratisversand ging nicht mehr

Eine Kundin bestellt für genau 50 €. Die Seite verspricht ab 50 € Gratisversand. Sie zahlte trotzdem 3,99 €.

Letzte Woche hat jemand ein einziges Zeichen geändert. Niemand hat es bemerkt, weil nichts es geprüft hat. Ein Test ist ein kleines Stück Code, das es bemerkt hätte.

Am Ende dieser Lektion

Notiz

Ich kann einen Test schreiben, der eine Funktion prüft.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
TestCode, der prüft, ob anderer Code richtig antwortet
Asserteine Zeile, die mit Fehler stoppt, wenn etwas falsch istassert versand == 0
Erwartetdie Antwort, die die Funktion geben soll
Tatsächlichdie Antwort, die die Funktion wirklich gibt
Randfallein Wert genau an einer Grenze, wo Fehler sich verstecken5000

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Test vergleicht erwartet und tatsächlich

Jeder Test stellt eine Frage: Gibt die Funktion die richtige Antwort?

Sie schreiben die erwartete Antwort auf. Dann führen Sie die Funktion aus und erhalten die tatsächliche Antwort. assert vergleicht beide.

Sind sie gleich, passiert nichts, der Test besteht. Sind sie verschieden, stoppt Python mit einem AssertionError.

Ausprobieren: ein erster Test

Code: python
def versandkosten(summe_in_cent):
    # Ab 5000 Cent (50 Euro) ist der Versand frei.
    if summe_in_cent >= 5000:
        return 0
    return 399


erwartet = 399
tatsaechlich = versandkosten(1200)
print("Erwartet:", erwartet, "Tatsächlich:", tatsaechlich)
assert tatsaechlich == erwartet
print("Test bestanden")

Testen Sie die Ränder, nicht nur die Mitte

Ein Test mit 1200 Cent und einer mit 9000 Cent bestehen beide, auch wenn ein Fehler im Code steckt. Fehler verstecken sich am Rand: genau da, wo die Regel wechselt.

Bei „frei ab 50 €“ testen Sie knapp darunter, genau darauf und knapp darüber.

Beispiel: Tests für den Gratisversand

Bestellung (Cent)Warum dieser WertErwarteter VersandMit dem >-Fehler
1200Eine normale kleine Bestellung399399, besteht
4999Ein Cent unter der Grenze399399, besteht
5000Genau auf der Grenze0399, scheitert
9000Eine normale große Bestellung00, besteht

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele denken, ein bestandener Test beweise, dass der Code stimmt. Ein Test prüft nur die Werte, die Sie gewählt haben. Wer den Rand nie testet, übersieht einen Fehler genau dort.

Üben: den Fehler am Rand finden

Code: python
def versandkosten(summe_in_cent):
    # Jemand hat aus >= versehentlich > gemacht.
    if summe_in_cent > 5000:
        return 0
    return 399


assert versandkosten(1200) == 399
print("Kleine Bestellung: bestanden")
assert versandkosten(9000) == 0
print("Große Bestellung: bestanden")

# Fügen Sie einen weiteren assert für genau 5000 Cent hinzu.
# Welcher Versand ist dort richtig? Drücken Sie Run und lesen Sie die Meldung.

Tests sind Funktionen mit dem Namen test_

Im Beruf ist jeder Test eine eigene Funktion, deren Name mit test_ beginnt. Ein Testprogramm wie pytest findet alle und führt sie aus.

Eine Funktion prüft eine Idee. Ihr Name nennt die Idee: test_genau_vierzig. Scheitert sie, sagt der Name Ihnen, was kaputt ist.

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.