docs: update testing strategy and define directory symmetry

This commit is contained in:
2026-07-16 12:16:59 +02:00
parent 3629382dd0
commit 379d00542a
2 changed files with 49 additions and 10 deletions
+9 -8
View File
@@ -72,21 +72,22 @@ Zur Entkopplung zeitintensiver Prozesse wird ein Message-Bus eingesetzt. Dabei g
- **Ort**: Message-Handler befinden sich in der **UI Layer**.
- **Rolle**: Da ein asynchroner Nachrichteneingang ein externer Eintrittspunkt ist, fungiert der Handler als Adapter. Er nimmt die Message entgegen und delegiert die eigentliche Verarbeitung an einen entsprechenden UseCase oder Workflow in der Logic Layer.
## 6. Teststrategie
Um eine hohe Codequalität und Wartbarkeit zu gewährleisten, wird eine pyramidale Teststrategie verfolgt:
## 6. Teststrategie & Symmetrie
Um eine hohe Codequalität und Wartbarkeit zu gewährleisten, wird eine pyramidale Teststrategie verfolgt. Dabei gilt das Prinzip der **Symmetrie**: Die Verzeichnisstruktur unter `tests/` spiegelt exakt die Struktur von `src/` wider, um die Auffindbarkeit von Tests sicherzustellen.
### Unit Tests (Logic Layer)
- **Fokus**: Reine Geschäftslogik, Models, UseCases.
- **Regel**: Diese Tests dürfen *keine* echte Datenbank oder externe APIs nutzen. Abhängigkeiten zur Data Layer werden zwingend durch Mocks/Doubles der Interfaces ersetzt.
- **Ziel**: Schnelle Ausführung und vollständige Abdeckung der Edge-Cases in der Business-Logik.
### Integration Tests (Data & UI Layer)
- **Fokus**: Korrekte Persistenz (Repositories, Processor) und korrekte Endpunkt-Konfiguration (Controller, Handler).
- **Regel**: Nutzen eine echte Test-Datenbank oder einen In-Memory-Speicher. Hier wird geprüft, ob die Kommunikation zwischen den Schichten und zum Framework funktioniert.
### Integration Tests (Data Layer)
- **Fokus**: Korrekte Persistenz (Repositories, Processor) und Mapping.
- **Regel**: Nutzen eine echte Test-Datenbank oder einen In-Memory-Speicher. Hier wird geprüft, ob die technische Implementierung der Data-Layer korrekt funktioniert.
### Functional / E2E Tests
- **Fokus**: Durchlauf kompletter Business-Szenarien von der UI bis zur Data Layer.
### Functional Tests (UI Layer & Scenarios)
- **Fokus**: Durchlauf kompletter Business-Szenarien und Validierung von API-Endpunkten.
- **Werkzeug**: Einsatz des Symfony `WebTestCase`.
- **Ziel**: Sicherstellung, dass die Kette UI $\rightarrow$ Logic $\rightarrow$ Data konsistent funktioniert.
## 7. Logging & Observability