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á.
Jednotkou se v objektově orientovaném programování rozumí obvykle jedna metoda třídy. Test by měl být:
—
Unit testing není „práce navíc“, ale investice, která se vrací v podobě:
—
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);
}
—
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.
—
Code Coverage (pokrytí kódu) udává, kolik procent řádků vašeho kódu je vykonáno během testů.
—
| 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