35 lines
1.1 KiB
Markdown
35 lines
1.1 KiB
Markdown
|
|
---
|
|||
|
|
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
|