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

  1. Pomenuj aktéra (actor) – kto so systémom interaguje (prihlásený užívateľ, anonymný návštevník, iný systém).
  2. Popíš Given – v akom stave sa systém nachádza predtým, než sa čokoľvek stane (napr. „existuje užívateľ X“).
  3. Popíš When – jedna konkrétna akcia alebo udalosť, ktorú testuješ (napr. „klikne na tlačidlo Odoslať“).
  4. Popíš Then – pozorovateľný výsledok, ideálne vrátane zmeny stavu v databáze alebo inej infraštruktúre.
  5. Drž scenár krátky – jeden scenár = jedno správanie, nie kombinácia viacerých.

Ako rozdeliť feature request na menšie kroky

  1. Over si typ funkcionality z pohľadu vonkajšieho sveta – UI formulár, API endpoint alebo CLI príkaz.
  2. Zisti, pre koho (aktéra) je funkcionalita určená – rozhoduje to o autentifikácii a nastavení komunikácie.
  3. Spíš akceptačné kritériá ako kombinácie vstup → (zmena) → výstup.
  4. Over, aké súčasti (DB, externé služby) budeš potrebovať – to určuje rozsah implementácie.
  5. 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

  1. V Controller vrstve pri čítaní (GET) over návratovú hodnotu – správny formát a obsah odpovede.
  2. V Controller vrstve pri zápise (POST/PUT/DELETE) over zmenu vnútorného stavu – čo sa reálne zmenilo po zavolaní.
  3. 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.
  4. Use case testy sú oveľa rýchlejšie ako UI/akceptačné testy.
  5. 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.