Ein Spy ist ein Test Double in Gerard Meszaros' Taxonomie aus xUnit Test Patterns (2007): ein Stub, der zusätzlich aufzeichnet, wie er aufgerufen wurde, also welche Methoden, mit welchen Argumenten und wie oft. Er gibt vorgefertigte Antworten zurück und protokolliert jede Interaktion stillschweigend zur späteren Prüfung. Die Assertions folgen nach der Aktion im Testkörper, anders als beim Mock, dessen vorprogrammierte Erwartungen sofort fehlschlagen.
Test Double: Spy (Meszaros)
Details
Kernkonzepte:
- Zweck
-
Ein Stub, der zusätzlich aufzeichnet, wie er aufgerufen wurde — welche Methoden, mit welchen Argumenten, wie oft. Assertions erfolgen nach der Aktion, nicht als Erwartungen davor.
- Verhalten
-
Gibt vorgefertigte Antworten zurück (wie ein Stub) und zeichnet alle Interaktionen stillschweigend zur späteren Inspektion auf.
- Abgrenzung zum Mock
-
Ein Spy zeichnet auf und lässt dich hinterher prüfen. Ein Mock hat vorprogrammierte Erwartungen, die sofort fehlschlagen, wenn sie verletzt werden.
- Schlüsselvertreter
-
Gerard Meszaros ("xUnit Test Patterns", 2007)
Wann zu verwenden:
-
Einem LLM sagen: "Erzeuge ein Spy-Test-Double, das Aufrufe zur späteren Assertion aufzeichnet"
-
Wenn Interaktionen verifiziert werden sollen, die Assertions aber im Testkörper statt im Setup stehen sollen
-
Auditieren, was während eines Tests geschah, ohne die Reihenfolge der Operationen einzuschränken
-
Wenn das genaue Interaktionsmuster zählt, die Assertion aber flexibel bleiben soll
Verwandte Anker:
-
Test Double (Meszaros) — übergreifende Taxonomie
-
Stub — Spy ohne Aufruf-Aufzeichnung
-
Mock — vorprogrammierte Erwartungen statt nachträglicher Assertion