Přeskočit na obsah

Testování

Strategie stojí na jednom rozdělení: co smí na síť a co ne. Mimo jedinou opt-in vrstvu nesahá žádný test na živý endpoint — HTTP se mockuje, SOAP odpovědi pocházejí z commitnutých fixtures.

Vrstvy
unit, integrační, kontraktní, zlatá extrakční, E2E, živá certifikace
Mimo výchozí běh
E2E a živá certifikace
Živá vrstva
spustí se jen s explicitně nastavenou proměnnou prostředí
Vynuceno v pre-commitu
nový modul pod src/ bez odpovídajícího testu neprojde
Zlatá sada
≥ 500 anotovaných přihlášek — zatím nevznikla

Proč jsou dvě vrstvy mimo výchozí běh

E2E testy jsou vyloučené z běžného běhu pytestu z technického důvodu, který dokument pojmenovává: synchronní API Playwrightu a event loop na test od pytest-asyncio si v jednom procesu navzájem kazí stav. Běží proto samostatně.

Živá certifikace je vyloučená z důvodu disciplíny: živý upstream nesmí udělat z deterministické sady nedeterministickou. Každý test v ní je označený a přeskočí se, dokud není explicitně zapnutá.

Pět pravidel

Co si zaslouží test víc než obvykle

Dokument vede krátký seznam míst, kde je selhání tiché, a proto se test nedá nahradit ostražitostí: idempotentní příjem (v provozu ho vyzkouší jedině pád), sémantika checkpointu (jejíž selhání je neviditelná ztráta dat), determinismus přehrání, fail-closed mapování stavů zdroje, routing podle spolehlivosti a stráže na osobní údaje.

Poslední jmenovaný je konkrétní: test, který tvrdí, že rodné číslo se neobjeví v projekci, v indexu, v API ani v logu. K tomu ověření mod-11 u IČO — levné na test a předchází celé třídě špatných shod.

Kde to v repozitáři žije

Souvisí

Zpět na sekci Dokumentace