Krajta

Výukový program pro Python Unittest

Výukový program pro Python Unittest

Testování jednotek je testovací metoda používaná v softwarovém inženýrství pro jednotlivé jednotky libovolného kódu. Uživatelé mohou provést jednotlivé testy, aby zjistili stav zdroje a kolik kódu je vhodné použít. Tímto způsobem mohou uživatelé otestovat kvalitu kódu.

Testování se provádí po dokončení procesu vývoje. Uživatelé mohou také začít testovat, když má být testovací skript ověřen na základě kritérií testování. Od vývojářů se očekává, že budou psát manuální typy zdrojového kódu. Obecně je ruční psaní testovacích kódů jednotek hektickým úkolem, ale v Pythonu se to provádí pomocí vestavěné funkce zvané unittest.

Unittest

Testování v Pythonu se provádí pomocí unittest framework. Díky testování jednotky je kód bezpečný a snadno použitelný i v budoucnu. Uživatelé obvykle nemohou tyto případy předvídat, ale mohou je snadno řešit. Unittest může být buď celý modul, konkrétní funkce a celé rozhraní (třída / modul).

Jak psát jednotkové testy pro váš kód?

Chcete-li napsat testy jednotky pro váš kód, vždy začněte s nejmenší jednotkou, kterou lze testovat z celého kódu, a poté přejděte dále k dalším jednotkám. Tímto způsobem ověříte, jak interaguje nejmenší vybraná jednotka s testem celé jednotky.

Rámec testování jednotek Pythonu byl vytvořen s přihlédnutím k jávskému Junitu. Má stejné funkce, jako je testování jednotek v jiných jazycích. Rámec testování jednotek v Pythonu pomáhá při testování automatizace, sdílení nastavení, agregaci mnoha testů do jedné velké sady a nezávislých testech

Příklady:

Nyní v příkladu kontrolujeme kód, abychom zjistili součet v kódu Pythonu pomocí funkce sum (). Odpověď na tento součet musí být 12, což je správné.

>>> uplatnit součet ([2, 4, 6]) == 12, "Mělo by se rovnat 12"

Na druhou stranu, pokud se pokusíme napsat nesprávnou výstupní hodnotu, jejíž součet () je nesprávný, výsledky se nezdaří. Vrátí AssertionError. Výstup, který jsme uvedli, je špatný, tedy 12, a skutečný výstup musí být 6, proto tuto chybu vrátil.

>>> uplatnit součet ([2, 2, 2]) == 12, "Mělo by se rovnat 12"

Nyní namísto testování na REPL vložíme nový soubor Pythonu a pojmenujeme ho test_sum.py

>> def testValue_sum ():
uplatnit součet ([2, 4, 6]) == 12, „Mělo by se rovnat 12“
pokud __name__ == "__main__":
testValue_sum ()
tisk ("Všechno bylo předáno správně")

Po napsání testovacího případu můžete přistupovat k adresáři, který má test_sum.soubor py a zadejte:

$ python test_sum.py

Výstup:

Pokud je výstupní hodnota podobná zobrazené, schválí správnou hodnotu.

Vytvořme další soubor pro .py otestovat součet. Příklad zobrazený v kódu a lze jej použít jako ukázku kopírováním:

def testValue_sum ():
uplatnit součet ([2, 4, 6]) == 12, „Mělo by se rovnat 12“
def testValue_sum_tuple ():
uplatnit součet ((1, 1, 1)) == 6, „Mělo by se rovnat 6“
pokud __name__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
tisk („Všechno bylo předáno správně“)

Tentokrát soubor znovu pojmenujeme test_sum.py 

První blok kódu je správný, zatímco druhý blok kódu je nesprávný a obsahuje chybu, takže náš výstup vrátí stejnou hodnotu.

Nyní se vrátíme do adresáře projektu, kde jsme uložili .py soubor, a poté soubor otestujte pomocí následujícího příkazu:

$ python test_sum.py

Výstup:

Tentokrát, protože ve vstupním kódu došlo k chybě, se očekává, že vrátí chybu Assertion jako odpověď.

Příklad použití unittestu:

Požadavky Unittest spočívají v tom, že uživatelé mohou své testy vkládat do tříd jako různé metody, uživatelé mohou používat řadu metod tvrzení a místo příkazu assert lze použít třídu TestCase.

Uživatelé mohou převést příklad popsaný v předchozí polovině na testovací případ unittest.

Nejprve importujte nejjednodušší knihovnu. Dále musíte vytvořit TestSum z různých tříd.

Vytvořte nový soubor pro kód popsaný níže:

import unittest
třída TestSum (unittest.Modelový případ):
def testValue_sum (self):
já.assertEqual (součet ([2, 4, 6]), 12, "Mělo by se rovnat 12")
def testValue_sum_tuple (vlastní):
já.assertEqual (sum ((1, 1, 1)), 6, "Mělo by se rovnat 6")
pokud __name__ == '__main__':
unittest.hlavní()

Po provedení tohoto příkazu má výstup tečku. To znamená úspěch a F znamená selhání.

Máme tedy úspěch a dalším je neúspěch.

Výstup:

Psaní prvního testu:

Vytvořte novou složku projektu a poté vytvořte novou složku, budeme ji nazývat sum_file. V něm vytvořte soubor a pojmenujte ho __init__.py.  Vytvořte složku projektu jako tuto:

projekt/

└── sum_file /
└── __init__.py

Pak musíte otevřít my_sum / __ init__.py a vytvořte novou funkci sum (). Bude iterovatelné (seznam, n-tice nebo sada) pro přidání mnoha hodnot:

def součet (arg):
total_ValueCalculated = 0
pro val v arg:
total_ValueCalculated + = val
return total_ValueCalculated

Dále musíte vytvořit test soubor. Začněte psaním testů a vytvořte testovací soubor s názvem testFile.py. Chcete-li aplikaci importovat a musí být otestována, umístěte soubor testFile.py nad vaší složkou balíčku. Následující bude celkový vzhled vašeho adresáře:

projekt/

├── sum_file /
│ └── __init__.py
|
└── testFile.py

Jak již bylo popsáno výše k otestování kódu, můžete v terminálovém okně / příkazovém řádku použít následující příkaz:

$ python -m unittest test

Závěr

Článek pojednává o procesu testování jednotek v Pythonu. Testování je jednou z užitečných funkcí softwarového inženýrství, která je schopna rozdělit kódy na menší bloky a poté je jednotlivě vyzkoušet. Uživatelé mohou také sestavit celé testovací vzorky / kódy jednotek do jedné velké sbírky. Unittest je jedna funkce používaná v Pythonu pro snadné použití testování.

Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...