Obsah

Unit Testing a kvalita kódu

Unit Testing je proces automatizovaného ověřování funkčnosti jednotlivých komponent programu v izolaci. Cílem není najít všechny chyby v systému, ale zajistit, že každá jednotlivá část kódu (jednotka) dělá přesně to, co se od ní očekává.

1. Co je to "jednotka"?

Jednotkou se v objektově orientovaném programování rozumí obvykle jedna metoda třídy. Test by měl být:

2. Proč psát unit testy?

Unit testing není „práce navíc“, ale investice, která se vrací v podobě:

3. Životní cyklus testu: AAA vzor

Většina unit testů se píše podle struktury AAA (Arrange, Act, Assert):

1. **Arrange (Příprava):** Nastavení testovacího prostředí, inicializace objektů a příprava vstupních dat.
2. **Act (Akce):** Zavolání testované metody.
3. **Assert (Ověření):** Kontrola, zda je skutečný výsledek shodný s očekávaným.
// Příklad v jazyce C# (NUnit)
[Test]
public void Add_TwoNumbers_ReturnsSum() {
    // Arrange
    var calculator = new Calculator();
    // Act
    var result = calculator.Add(2, 3);
    // Assert
    Assert.AreEqual(5, result);
}

4. TDD – Test Driven Development

TDD je metodika, kde test píšete dříve než samotný kód. Probíhá v cyklu:

1. **Red (Červená):** Napíšete test na funkci, která ještě neexistuje. Test selže.
2. **Green (Zelená):** Napíšete minimální množství kódu nutné k tomu, aby test prošel.
3. **Refactor (Refaktoring):** Vyčistíte kód, zatímco testy hlídají jeho funkčnost.

5. Metriky kvality: Code Coverage

Code Coverage (pokrytí kódu) udává, kolik procent řádků vašeho kódu je vykonáno během testů.

6. Oblíbené nástroje (Frameworky)

Jazyk Frameworky
Java JUnit, TestNG
C# / .NET xUnit, NUnit, MSTest
Python PyTest, unittest
JavaScript Jest, Mocha
PHP PHPUnit

Související články:

Tagy: programming testing unit-testing tdd software-quality clean-code