Obsah

Unit Testing (Jednotkové testování)

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.


Jak Unit Test vypadá?

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.

Příklad (Pseudokód):

@Test
void testScteni() {
    // Arrange
    Kalkulacka kalk = new Kalkulacka();
    // Act
    int vysledek = kalk.secti(2, 3);
    // Assert
    assertEquals(5, vysledek);
}

Klíčové vlastnosti Unit Testů

Aby byly testy užitečné, musí splňovat pravidla FIRST:


Proč jsou Unit Testy důležité?


Izolace: Mockování a Stubování

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.


Populární nástroje

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í.