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
Fehler-Tests sitzen! Mini-Projekt: testbare Bibliothek.