Unit Testing je základní úrovní testování softwaru. Cílem je izolovat každou část programu a ukázat, že tyto jednotlivé části (jednotky) fungují přesně tak, jak mají. Testy píší sami vývojáři souběžně s psaním samotného kódu.
Jednotkový test je malý skript, který automaticky provede následující kroky (známé jako vzor AAA):
1. **Arrange (Příprava):** Nastaví se výchozí podmínky a připraví se objekty. 2. **Act (Akce):** Zavolá se testovaná metoda s konkrétními parametry. 3. **Assert (Ověření):** Porovná se skutečný výsledek s tím očekávaným. Pokud se shodují, test prošel.
@Test void testScteni() { // Arrange Kalkulacka kalk = new Kalkulacka(); // Act int vysledek = kalk.secti(2, 3); // Assert assertEquals(5, vysledek); }
Aby byly testy užitečné, musí splňovat pravidla FIRST:
Aby byl test skutečně „jednotkový“, nesmí sahat do databáze nebo na internet. Pokud testovaná metoda vyžaduje externí službu, nahradí se tzv. Mockem (falešným objektem). * *Příklad:* Místo skutečného odeslání e-mailu použijeme „MockEmailSender“, který se jen tváří, že e-mail odeslal, a my si v testu ověříme, zda byl zavolán.
| Jazyk | Nástroj (Framework) |
|---|---|
| Java | JUnit, TestNG |
| C# (.NET) | xUnit, NUnit |
| Python | pytest, unittest |
| JavaScript | Jest, Mocha |
Související pojmy: Refaktorování, Technický dluh, SOLID principy, TDD (Test Driven Development), Integrační testování.