docs: update testing strategy and define directory symmetry
This commit is contained in:
+9
-8
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user