Red
Verhalten beschreiben, Test ausführen und sicherstellen, dass er aus dem erwarteten fachlichen Grund fehlschlägt.
Verbindlicher Outside-in-Entwicklungsweg für eine modular entstehende Java-21-Anwendung.
Jeder fachliche Schritt beginnt mit einem beobachtbaren Fehlschlag und endet erst nach einem grünen Refactoringzustand.
Verhalten beschreiben, Test ausführen und sicherstellen, dass er aus dem erwarteten fachlichen Grund fehlschlägt.
Nur die kleinste fachlich korrekte Implementierung ergänzen. Keine vorsorgliche Zielarchitektur.
Namen, Duplikate, Verantwortlichkeiten und Grenzen verbessern, während das Verhalten unverändert grün bleibt.
Gemeinsame Use Cases und Verträge von außen; keine internen Klassennamen.
Orchestrierung, Ergebnisse, Fehler und explizite ausgehende Interaktionen.
Invarianten und Zustandswechsel mit realen Fachobjekten, ohne Mocking.
Ein Vertrag für frühe Fakes und spätere technische Adapter.
Serialisierung, Mapping, Transaktionen, Broker-Header und technische Fehler.
Konservieren erst dann Grenzen, wenn diese durch den Entwurf entstanden sind.
| Double | Zweck | Regel |
|---|---|---|
| Dummy | Unbenutzter Parameter | Keine Logik und keine Verifikation |
| Stub | Gezielte Antwort | Keine Interaktionsprüfung |
| Fake | Vereinfachte echte Semantik | Bevorzugt für frühe Repositories und Uhren |
| Spy | Relevante Nachricht aufzeichnen | Nur beobachtbare ausgehende Wirkung |
| Mock | Konkrete Interaktion erwarten | Nur an echter äußerer Grenze, keine Kaskaden |
Der Test war rot und der Fehlschlag hatte den erwarteten Grund.
Nur notwendiges Verhalten wurde ergänzt.
Struktur verbessert, Verhalten unverändert.
Ports und Module entstehen aus realem Druck.
Entscheidungen, Checks und Refactorings werden oben ergänzt.
Jeder Schritt bleibt mit einem gemeinsamen Szenario verbunden.
Walking Skeleton: erster roter Akzeptanztest und minimaler End-to-End-Pfad.
Customer: Registrierung, Identität, Builder und Repository-Fake.
Catalog: Preis, Aktivierung und Value-Object-Entwicklung.
Place Order: Positionen, Zustände und schrittweises Design.
Inventory: atomare Reservierung und Port Contracts.
Payment: Ablehnung, Retry, Idempotenz und Gateway-Grenze.
Billing und Fulfillment: Events und Kompensation.
Technische Adapter erfüllen dieselben Verträge wie die Fakes.
Test-Smells, Mutation, Modulgrenzen und Gesamtwerk.