Jednotkové-Testy sú mocným nástrojom pre vývojárov, aby zabezpečili kvalitu svojho kódu. Umožňujú ti izolovane testovať funkcie a zaručiť, že fungujú podľa očakávaní. V tomto sprievodcovi ti ukážem, ako napísať svoj prvý jednotkový test v Python. Naučíš sa nielen základy jednotkového testovania, ale aj to, ako si efektívne skonštruovať svoje testy.

Najdôležitejšie poznatky

  • Jednotkové testy pomáhajú včas odhaliť chyby a zabezpečiť, že tvoje funkcie fungujú, ako sa očakáva.
  • Knižnica Python unittest ponúka jednoduchý spôsob, ako implementovať testy.
  • Efektívne testy zahŕňajú pozitívne aj negatívne scenáre a kontrolujú dátové typy návratových hodnôt.

Postupný návod

Krok 1: Príprava tvojho projektu

Najprv potrebuješ súbor Python, v ktorom je definovaná tvoja funkcia. V našom príklade nazveme súbor cenovy_vypocet.py. Tu definuješ funkciu get_predajna_cena, ktorá preberá nákupnú cenu a pridáva maržu.

Python Unit-Test základy: Tvoj vstup

Krok 2: Vytvor súbor pre svoje jednotkové testy

Potom vytvor novú súbor, ktorý bude obsahovať testy pre túto funkciu. Nazvime tento súbor cenovy_vypocet_test.py. Tu budeš pracovať s modulom unittest.

Aby si mohol využiť framework, na začiatku svojho súboru ho importuj:

import unittest
from cenovy_vypocet import get_predajna_cena
Základy Python Unit-Testu: Tvoj vstup

Krok 3: Definuj testovaciu triedu

Testovacia trieda by mala dediť od unittest.TestCase. To ti umožní usporiadať všetky testy v štruktúrovanej forme. Premenuj triedu na CenovyVypocetTest, aby bolo jasné, čo sa testuje.

Python Unit-Test základy: Tvoj vstup

Krok 4: Napíš svoje testy

Teraz je čas napísať skutočné testy. Začni s testom, ktorý kontroluje, či návratová hodnota z get_predajna_cena má očakávaný typ (float):

class CenovyVypocetTest(unittest.TestCase): def test_cena_je_float(self): vk = get_predajna_cena(100) self.assertIsInstance(vk, float)
Python Unit-Test základy: Tvoj vstup

Krok 5: Testuj neplatné vstupy

Rovnako dôležité je testovať neplatné vstupy. Pridaj test, ktorý overí, či funkcia vyhodí výnimku pri neplatných vstupoch, ako None alebo string:

def test_neplatny_vstup(self): with self.assertRaises(TypeError): get_predajna_cena("neplatny")
Python Unit-Test základy: Tvoj vstup

Krok 6: Spusti testy

Aby si mohol spustiť svoje testy, môžeš to urobiť buď cez terminál, alebo priamo vo svojej IDE. Ak používaš terminál, vykonaj nasledovné:

python -m unittest cenovy_vypocet_test.py

Vo svojej IDE, ako je PyCharm, môžeš použiť konfiguráciu spustenia na vykonanie testov.

Python Unit-Test základy: Tvoj vstup

Krok 7: Skontroluj výsledky

Ak úspešne spustíš testy, dostaneš výstup, ktorý ti ukáže, či všetky testy boli splnené. Zelený výsledok znamená, že tvoj kód funguje, ako je zamýšľané.

Krok 8: Rozšír testy

Okrem základných testov môžeš pridať ďalšie relevantné scenáre, aby si zvýšil bezpečnosť kódu. Pamätaj na testovanie pozitívnych aj negatívnych prípadov, aby si zabezpečil, že tvoja logika funguje vo všetkých situáciách.

Python Unit-Test základy: Tvoj vstup

Zhrnutie - Prvý jednotkový test s Python: Základy a realizácia

Písanie jednotkových testov je dôležitá zručnosť, ktorá ti pomáha zabezpečiť spoľahlivosť tvojho kódu. V tomto návode si sa naučil, ako napísať prvý jednotkový test v Pythone, od definície funkcie až po exekúciu a overenie výsledkov. Dôkladné testovanie výrazne zlepšuje udržateľnosť tvojho kódu a problémy sa odhalia včas.

Často kladené otázky

Kako vytvorím jednotkový test v Python?Aby si vytvoril jednotkový test v Pythone, vytvor testovaciu triedu, ktorá dedí od unittest.TestCase, a napíš testy ako metódy tejto triedy.

Prečo by som mal písať jednotkové testy?Jednotkové testy pomáhajú včas odhaliť chyby a zabezpečiť, že tvoje funkcie fungujú, ak sa očakáva.

Kako spustiť jednotkové testy?Jednotkové testy môžeš spustiť prostredníctvom terminálu pomocou python -m unittest [názov_súboru] alebo priamo vo svojej IDE.

Aké sú dobré praktiky pre jednotkové testy?Dobrou praxou je zahrnúť pozitívne aj negatívne testovacie scenáre a kontrolu dátových typov. Pravidelné vykonávanie testov je tiež dôležité na okamžitú kontrolu zmien v kóde.