Unit testing s pytest

Úvod do testování v Pythonu

Alexander Levin

Data Scientist

Co je unit test

Jednotka – nejmenší testovatelná část kódu.

  • Příklady jednotek: funkce, metody, třídy, moduly apod.

$$

Unit testing – metoda testování softwaru.

  • Umožňuje ověřit správnost jednotky.

$$

Testovací případ – sada vstupů a očekávaných výstupů jednotky.

  • Popisuje konkrétní část problému.
Úvod do testování v Pythonu

Proč používat unit testy

Unit testy – základ pro testování „většího celku" softwaru.

Případy použití:

  • Při nalezení chyb
  • Během vývoje
  • Po implementaci změn
Úvod do testování v Pythonu

Jak vytvořit unit test

Postup krok za krokem:

  1. Vyberte jednotky k otestování
  2. Definujte testovací případy (kreativní část):
    • „Jaké jsou možné výsledky jednotky?"
    • „Jak lze jednotku použít?"
    • „Jak by se měla jednotka v těchto případech chovat?"
  3. Napište kód pro každý testovací případ
  4. Spusťte testy a analyzujte výsledky
Úvod do testování v Pythonu

Vytvoření unit testu: příklad

Testovaná jednotka:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

Testovací případy:

  1. Vstup je seznam čísel (očekávaný) – vrátí sum
  2. Vstup je prázdný seznam – vrátí 0
  3. Vstup je seznam s jedním number – vrátí number
Úvod do testování v Pythonu

Vytvoření unit testu: kód

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Úvod do testování v Pythonu

Shrnutí

Unit test – test ověřující, že jednotka funguje správně.

Testovací případ – vstupy a výstupy popisující konkrétní část problému.

Případy použití:

  • Při nalezení chyb
  • Během vývoje
  • Po implementaci změn

Definování testovacích případů – vyžaduje kreativitu.

Úvod do testování v Pythonu

Pojďme si procvičit!

Úvod do testování v Pythonu

Preparing Video For Download...