Unit-Tests jsou mocný nástroj pro vývojáře, jak zajistit kvalitu jejich kódu. Umožňují ti testovat funkce izolovaně a zajistit, že fungují tak, jak mají. V této příručce ti ukážu, jak napsat svůj první Unit-Test v Python. Naučíš se nejen základy unit-testování, ale také, jak efektivně tvořit své testy.

Nejdůležitější poznatky

  • Unit-Tests pomáhají odhalit chyby včas a zajišťují, že tvé funkce pracují, jak mají.
  • Python knihovna unittest poskytuje jednoduchý způsob, jak implementovat testy.
  • Efektivní testy zahrnují jak pozitivní, tak negativní scénáře a kontrolují datové typy návratových hodnot.

Podrobný návod

Krok 1: Příprava tvého projektu

Nejdříve potřebuješ Python soubor, ve kterém je definována tvoje funkce. V našem příkladu pojmenujeme soubor preisberechnung.py. Zde definuješ funkci get_verkaufspreis, která převezme nákupní cenu a přidá marži.

Základy testování jednotek v Pythonu: Tvůj vstup

Krok 2: Vytvoř soubor pro své Unit-Tests

Poté vytvoř nový soubor, který bude obsahovat testy pro tuto funkci. Nazvěme tento soubor preisberechnung_test.py. Zde budeš pracovat s modulem unittest.

Abychom mohli framework používat, importuj ho na začátek svého souboru:

import unittest
from preisberechnung import get_verkaufspreis
Python Unit-Test základy: Tvůj vstup

Krok 3: Definuj testovací třídu

Testovací třída by měla dědit z unittest.TestCase. To ti umožní organizovat všechny testy ve strukturované formě. Pojmenuj třídu jako PreisberechnungTest, aby bylo jasné, co se testuje.

Python Unit-Test základy: Tvůj vstup

Krok 4: Napiš své testy

Teď je čas napsat skutečné testy. Začni testem, který zkontroluje, zda návratová hodnota get_verkaufspreis má očekávaný typ (float):

class PreisberechnungTest(unittest.TestCase): def test_preis_ist_float(self): vk = get_verkaufspreis(100) self.assertIsInstance(vk, float)
Python Unit-Test základy: Tvůj vstup

Krok 5: Testuj neplatné vstupy

Je také důležité testovat neplatné vstupy. Přidej test, který zkontroluje, zda funkce vyhazuje výjimku při neplatných vstupech, jako je None nebo nějaký String:

def test_invalid_input(self): with self.assertRaises(TypeError): get_verkaufspreis("invalid")
Základy Python Unit-Testů: Tvůj vstup

Krok 6: Spouštění testů

Abychom spustili své testy, můžeme to udělat buď přes terminál, nebo přímo ve své IDE. Pokud používáš terminál, spusť následující:

python -m unittest preisberechnung_test.py

Ve své IDE, jako je PyCharm, můžeš použít konfiguraci pro spuštění, abys provedl testy.

Python Unit-Test základy: Tvůj vstup

Krok 7: Kontrola výsledků

Pokud úspěšně proběhnou testy, obdržíš výstup, který ti ukáže, zda všechny testy byly úspěšné. Zelený výsledek znamená, že tvůj kód funguje, jak bylo zamýšleno.

Krok 8: Rozšíření testů

Kromě základních testů můžeš přidat i další relevantní scénáře, aby ses zvýšil zabezpečení kódu. Mysli na testování jak pozitivních, tak negativních případů, abys zajistil, že tvá logika funguje ve všech situacích.

Python Unit-Test základy: Tvůj vstup

Souhrn - První Unit-Test s Pythonem: Základy a implementace

Psaní Unit-Testů je důležitá dovednost, která ti pomůže udělat tvůj kód spolehlivým. V této příručce jsi se naučil, jak napsat první Unit-Test v Pythonu, od definice funkce po provádění a kontrolu výsledků. Důkladným testováním se výrazně zlepší udržovatelnost tvého kódu a problémy se odhalí včas.

Často kladené otázky

Jak vytvořím Unit-Test v Pythonu?Abych vytvořil Unit-Test v Pythonu, vytvoř testovací třídu, která dědí z unittest.TestCase, a piš testy jako metody této třídy.

Proč bych měl psát Unit-Testy?Unit-Testy pomáhají včas identifikovat chyby a zajišťují, že tvé funkce pracují, jak má.

Jak spustím Unit-Testy?Můžeš spustit Unit-Testy přes terminál s příkazem python -m unittest [název_souboru] nebo přímo ve své IDE.

Jaké jsou dobré praktiky pro Unit-Testy?Dobrou praxí je zahrnovat jak pozitivní, tak negativní testovací scénáře a kontrolovat datové typy. Také pravidelnost provádění je důležitá, aby bylo možné okamžitě ověřit změny v kódu.