Ein Mock ist ein Test Double in Gerard Meszaros' Taxonomie aus xUnit Test Patterns (2007), das mit Erwartungen vorprogrammiert ist, welche Aufrufe das System Under Test machen soll. Seine eingebauten Assertions lassen den Test sofort fehlschlagen, wenn Methode, Argumente oder Reihenfolge falsch sind. Anders als ein Stub verifiziert er Verhalten aktiv, und anders als ein Spy erzwingt er Erwartungen während der Ausführung; das passt zum interaktionsbasierten Testen der London School TDD.

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: