Zum Hauptinhalt springen

Fehlerfälle testen

Grenzfall

import unittest

def schnitt(werte: list[float]) -> float:
if not werte:
raise ValueError("leere Liste")
return sum(werte) / len(werte)

class TestSchnitt(unittest.TestCase):
def test_normal(self):
self.assertEqual(schnitt([2, 4]), 3)

def test_leer(self):
with self.assertRaises(ValueError):
schnitt([])

assertRaises erwartet einen Fehler – und der Test ist grün, wenn er kommt.

Rate mal!

Nur den Happy Path testen?

Auflösung

Unvollständig – Grenzen und Fehler finden die tückischen Bugs.

Probiere es selbst

Experiment 1

Test leere Eingabe.

Experiment 2

assertRaises demo.

Experiment 3

Division durch 0 absichern + testen.

Übungen

Level 1

Grenzfall beschreiben.

Level 2

assertRaises für ValueError.

Level 3

2 Normal + 1 Fehler-Test.

Level-2-Lösung
with self.assertRaises(ValueError):
schnitt([])

Mini-Quiz

Mini-QuizWofuer ist assertRaises?

Fehler-Tests sitzen! Mini-Projekt: testbare Bibliothek.