Programovaniezačiatočník

Č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 90
  • calculateDiscount(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á.