--- mode: agent description: Tests schreiben – Unit, Integration oder E2E für bestehenden Code tools: - codebase - editFiles - runCommands - problems --- # Tests schreiben **Ziel:** ${input:target:Welcher Code soll getestet werden?} **Test-Typ:** ${input:test_type:unit / integration / e2e} ## Strategie 1. **Analyse** – Bestehende Tests lesen, Test-Framework und Patterns verstehen 2. **Coverage-Lücken** – Welche Fälle sind ungetestet? 3. **Test-Cases** – Happy Path + Edge Cases + Error Cases definieren 4. **Implementierung** – Tests schreiben, bestehende Patterns und Helpers nutzen 5. **Ausführen** – Tests laufen grün ## Gute Tests - **Arrange / Act / Assert** – klare Struktur - Ein Test = eine Assertion (oder eng verwandte Gruppe) - Test-Namen beschreiben das erwartete Verhalten: `should return empty array when input is null` - Keine Implementation Details testen – nur Verhalten - Keine Mocks wo Echte Objekte möglich sind ## Nicht erwünscht - Tests die nur Code paraphrasieren ohne Mehrwert - Fragile Tests die bei jedem Refactor brechen - Tests mit versteckten Abhängigkeiten zwischen sich