Čo je Unit Test?
Unit test (jednotkový test) je automatizovaný test, ktorý overuje správne fungovanie jednej izolovanej jednotky kódu — typicky funkcie alebo metódy. Je základom testovacej pyramídy a beží veľmi rýchlo.
Definícia Unit Test
Čo je Unit Test
Unit testing (jednotkové testovanie) je metóda testovania softvéru, pri ktorej sa testujú najmenšie časti aplikácie — jednotlivé funkcie, metódy alebo triedy — izolovane od zvyšku systému. Koncept unit testov popularizoval Kent Beck v rámci metodológie Extreme Programming (XP) koncom 90. rokov.
Princípy dobrého unit testu
- Rýchlosť — unit test by mal trvať milisekundy, nie sekundy
- Izolácia — testuje sa jedna jednotka bez závislostí (databáza, sieť sa nahrádzajú mockmi)
- Opakovateľnosť — rovnaký výsledok pri každom spustení
- Jednoznačnosť — test buď prejde, alebo zlyhá — žiadna nejednoznačnosť
- Včasnosť — ideálne sa píšu pred alebo súčasne s produkčným kódom (TDD)
Populárne nástroje
Pre JavaScript/TypeScript sa najčastejšie používajú Jest a Vitest. V Pythone je štandardom pytest, v Jave JUnit a v C# NUnit alebo xUnit. Podľa štúdie firmy Microsoft unit testy znižujú počet bugov v produkcii o 20 – 40 %.
Praktický príklad
Príklad: Máte funkciu calculateDiscount(price, percentage), ktorá vypočíta zľavu z ceny.
Unit test v Jest overí rôzne scenáre:
calculateDiscount(100, 10)→ očakávaný výsledok 90calculateDiscount(100, 0)→ očakávaný výsledok 100 (žiadna zľava)calculateDiscount(100, -5)→ očakávaná chyba (záporná zľava)
Ak niekto neskôr zmení logiku funkcie a test zlyhá, okamžite viete, že sa niečo pokazilo.
Často kladené otázky
Čo je unit test a prečo ho potrebujem?
Unit test je automatizovaný test jednej funkcie alebo metódy. Potrebujete ho, aby ste mali istotu, že váš kód funguje správne, a mohli bezpečne robiť zmeny bez obáv, že niečo rozbijete.
Aký je rozdiel medzi unit testom a integračným testom?
Unit test testuje jednu izolovanú funkciu bez závislostí. Integračný test overuje spoluprácu viacerých komponentov — napríklad či funkcia správne komunikuje s databázou.
Čo je TDD (Test-Driven Development)?
TDD je prístup, kde najprv napíšete test (ktorý zlyhá), potom napíšete minimálny kód na jeho splnenie a nakoniec kód refaktorujete. Tento cyklus sa nazýva Red-Green-Refactor.
Koľko percent kódu by malo byť pokrytých unit testami?
Všeobecne sa odporúča pokrytie (code coverage) aspoň 70 – 80 %. Dôležitejšie než číslo je však kvalita testov — pokrytie kritickej biznis logiky je dôležitejšie než 100 % pokrytie celého kódu.
Súvisiace pojmy
Potrebujete pomôcť s webom?
Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.