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.pyVý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 unittesttří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 testZá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í.