¨
TDD není technika testování, ale technika návrhu softwaru. Nutí vývojáře přemýšlet o zadání a rozhraní (jak se bude kód používat) dříve, než začne řešit samotnou implementaci (jak to bude fungovat uvnitř).
TDD probíhá v neustále se opakujícím krátkém cyklu tří fází, který trvá obvykle jednotky minut:
1. **RED (Červená):** Napíšete malý [[unit_testing|jednotkový test]] pro funkci, která ještě neexistuje. Spustíte testy – tento nový test musí selhat (svítit červeně). Tím ověříte, že test skutečně něco testuje a neprochází jen náhodou. 2. **GREEN (Zelená):** Napíšete nejjednodušší možný kód (klidně i "špinavý" nebo s napevno zadanou hodnotou), aby test prošel (svítil zeleně). Cílem je mít funkční kód co nejrychleji. 3. **REFACTOR (Refaktorování):** Nyní, když máte jistotu, že kód funguje (test je zelený), jej vyčistíte. Odstraníte duplicity ([[dry_princip|DRY]]), zlepšíte názvy a strukturu. Testy po každé změně znovu spustíte, aby byla jistota, že jste nic nerozbili.
| Fáze | Tradiční vývoj | TDD (Vývoj řízený testy) |
|---|---|---|
| 1. Krok | Návrh a psaní kódu. | Psaní selhávajícího testu. |
| 2. Krok | Ruční zkoušení / Psaní testů. | Psaní kódu pro splnění testu. |
| 3. Krok | Oprava chyb. | Refaktorování pod dohledem testů. |
| Důraz | Na rychlost prvního dodání. | Na kvalitu a dlouhodobou udržitelnost. |
Související pojmy: Unit Testing, Refaktorování, SOLID principy, DRY princip, Technický dluh.