EMZETT.
Login

Mocking und Test-Doubles

Kurz: Ein Mock ist ein Platzhalter für eine echte Abhängigkeit (Datenbank, Netzwerk, Zeit) in einem Test. Er liefert vorgegebene Antworten und kann prüfen, ob er aufgerufen wurde.

Genauer: Test-Doubles sind Sammelbegriff für Stellvertreter: Dummy (füllt nur einen Parameter), Stub (liefert feste Antworten), Fake (einfache Ersatz-Implementierung, z. B. Datenbank im Speicher), Spy (merkt sich Aufrufe), Mock (prüft Erwartungen auf Aufrufe).

Im Detail

  • Warum: Tests werden schnell, laufen unabhängig vom Netz und sind wiederholbar. Fehlerfälle (Timeout, 500-Fehler) lassen sich gezielt erzeugen.
  • Zeit mocken: Statt echter Uhr eine feste Uhr, damit Fristen und Ablauf testbar sind.
  • Grenzen: Wer zu viel mockt, testet nur sich selbst. Integrationstests mit echter Datenbank bleiben wichtig.
  • Technik: Dependency Injection macht Abhängigkeiten austauschbar.
  • Werkzeuge: Jest/Vitest (vi.fn()), Mockito (Java), unittest.mock (Python), WireMock.

Siehe auch: Unit-Test (Modultest), Code-Abdeckung (Coverage)