Teststufen¶
Kamerplanter organisiert seine automatisierten Tests in vier Teststufen. Jede Stufe hat einen eigenen Fokus, ein eigenes Werkzeug und eine eigene Laufzeit-Charakteristik. Zusammen bilden sie eine Testpyramide: je tiefer die Stufe, desto mehr Tests laufen und desto schneller sind sie; je höher, desto weniger Tests und desto realistischer das Szenario.
| Stufe | Fokus | Werkzeug | Ort | Läuft in CI |
|---|---|---|---|---|
| Unit | Einzelne Funktionen/Klassen isoliert | pytest / vitest | src/backend/tests/unit/, src/frontend/src/test/{store,hooks}/ | Ja |
| Integration | Zusammenspiel mit echter Datenbank/API | pytest | src/backend/tests/integration/, …/api/ | Ja (DB-abhängig übersprungen) |
| Component | React-Komponenten im gerenderten DOM | vitest + Testing Library | src/frontend/src/test/components/ | Ja |
| E2E | Komplette Nutzer-Workflows im echten Browser | Selenium | tests/e2e/ | Nein (lokal / auf Abruf) |
Praktische Anleitung
Wie du die jeweilige Suite installierst und ausführst, steht ausführlich im Testkonzept — dort ist alles nach Werkzeug gegliedert. Auf diesen Seiten beschreiben wir was jede Stufe abdeckt und warum.
Die Pyramide¶
- Basis — Unit: Viele, sehr schnelle Tests ohne externe Abhängigkeiten. Sie prüfen die Fachlogik (VPD-, GDD-, EC-Berechnungen, Reducer, Hooks) in Isolation und geben in Sekunden Rückmeldung.
- Mitte — Integration & Component: Weniger Tests, die echtes Zusammenspiel prüfen — auf dem Backend gegen eine laufende ArangoDB, im Frontend gegen den gerenderten DOM mit gemockter API (MSW).
- Spitze — E2E: Wenige, langsame Tests, die einen kompletten Nutzer-Workflow durch echten Browser, Frontend, Backend und Datenbank fahren.
Wann welche Stufe?¶
- Neue Fachlogik (Berechnung, Engine, Service) → mindestens ein Unit-Test.
- Neuer Repository-/DB-Zugriff oder API-Endpunkt → ein Integrationstest.
- Neue oder geänderte React-Komponente → ein Component-Test.
- Neuer durchgängiger Workflow (z. B. Login → Anlegen → Speichern) → ein E2E-Test.
Faustregel: Schreibe den Test auf der niedrigsten Stufe, die den Fehler noch zuverlässig fängt. Das hält die Suite schnell und die Fehlermeldungen präzise.