Test Double: Mock (Meszaros)
Details
Kernkonzepte:
- Zweck
-
Vorprogrammiert mit Erwartungen, welche Aufrufe erfolgen sollen. Verifiziert, dass bestimmte Interaktionen stattgefunden haben — der Test schlägt fehl, wenn die erwarteten Interaktionen ausbleiben.
- Verhalten
-
Hat eingebaute Assertions. Ruft das System Under Test die falsche Methode, mit falschen Argumenten oder in der falschen Reihenfolge auf, lässt der Mock den Test sofort fehlschlagen.
- Abgrenzung zum Stub
-
Ein Stub liefert Daten passiv. Ein Mock verifiziert Verhalten aktiv.
- Abgrenzung zum Spy
-
Ein Spy zeichnet Aufrufe für nachträgliche Assertion auf. Ein Mock erzwingt Erwartungen während der Ausführung.
- Schlüsselvertreter
-
Gerard Meszaros ("xUnit Test Patterns", 2007)
Wann zu verwenden:
-
Einem LLM sagen: "Erzeuge ein Mock-Test-Double, das diese Interaktionen verifiziert"
-
Interaktionsbasiertes Testen (London School TDD)
-
Wenn das Verhalten mehr zählt als das Ergebnis
-
Verifizieren, dass eine Benachrichtigung gesendet, ein Log geschrieben oder ein Service korrekt aufgerufen wurde
Verwandte Anker:
-
Test Double (Meszaros) — übergreifende Taxonomie
-
Spy — nachträgliche Assertion statt Erwartungen
-
TDD, London School — bevorzugt Mocks für Outside-in-Design