Bežné situácie a postupy
Praktické postupy na konkrétne situácie, ktoré pri ATDD riešiš opakovane.
Ako napísať akceptačné kritérium v tvare Given/When/Then
- Pomenuj aktéra (actor) – kto so systémom interaguje (prihlásený užívateľ, anonymný návštevník, iný systém).
- Popíš Given – v akom stave sa systém nachádza predtým, než sa čokoľvek stane (napr. „existuje užívateľ X“).
- Popíš When – jedna konkrétna akcia alebo udalosť, ktorú testuješ (napr. „klikne na tlačidlo Odoslať“).
- Popíš Then – pozorovateľný výsledok, ideálne vrátane zmeny stavu v databáze alebo inej infraštruktúre.
- Drž scenár krátky – jeden scenár = jedno správanie, nie kombinácia viacerých.
Ako rozdeliť feature request na menšie kroky
- Over si typ funkcionality z pohľadu vonkajšieho sveta – UI formulár, API endpoint alebo CLI príkaz.
- Zisti, pre koho (aktéra) je funkcionalita určená – rozhoduje to o autentifikácii a nastavení komunikácie.
- Spíš akceptačné kritériá ako kombinácie vstup → (zmena) → výstup.
- Over, aké súčasti (DB, externé služby) budeš potrebovať – to určuje rozsah implementácie.
- Rozbi prácu v poradí UI + padajúci akceptačný test → interface-y → implementácia → zelený akceptačný test.
Ako zvoliť správny typ unit testu podľa vrstvy
- V Controller vrstve pri čítaní (GET) over návratovú hodnotu – správny formát a obsah odpovede.
- V Controller vrstve pri zápise (POST/PUT/DELETE) over zmenu vnútorného stavu – čo sa reálne zmenilo po zavolaní.
- Ak akceptačné/UI testy vyžadujú kombinatorickú náročnosť (veľa testov rovnakého typu, líšiacich sa len vstupom), presuň tieto prípady na unit testy aplikačnej (use case) vrstvy.
- Use case testy sú oveľa rýchlejšie ako UI/akceptačné testy.
- Nechaj v nich reálne napojenie na DB namiesto mockovania – ušetríš si kopu obslužného testovacieho kódu a popri tom si nepriamo otestuješ aj perzistenciu.