Piton

Python Unittest oktatóanyag

Python Unittest oktatóanyag

Az egységtesztelés a szoftvertervezés során használt tesztelési módszer bármilyen kód egyes egységeihez. A felhasználók elvégezhetik az egyes teszteket, hogy meghatározzák a forrás állapotát és azt, hogy a kód mennyire alkalmas a felhasználásra. Így a felhasználók tesztelhetik a kód minőségét.

A tesztelés a fejlesztési folyamat befejezése után történik. A felhasználók akkor is megkezdhetik a tesztelést, amikor a teszt szkriptjét ellenőrizni kell a teszt kritériumai alapján. A fejlesztőktől elvárható, hogy megírják a forráskód manuális típusait. Általában az egység tesztkódok kézi írása mozgalmas feladat, de a Pythonban ez egy beépített unittest nevű függvény segítségével történik.

Egységteszt

A tesztelést a Python-ban unittest keretrendszer végzi. Az egység tesztelése a kódot a jövőben is biztonságossá és könnyen használhatóvá teszi. A felhasználók általában nem tudják megjósolni ezeket az eseteket, de könnyen kezelhetik őket. Az Unittest lehet a teljes modul, egy adott funkció és egy teljes felület (osztály / modul).

Hogyan írjunk egység teszteket a kódhoz?

A kód egységegység-tesztjeinek megírásához mindig a legkisebb tesztelhető egységgel kezdje az egész kódot, majd lépjen tovább más egységekre. Így ellenőrizheti, hogy a legkisebb kiválasztott egység hogyan hat egymással egy egész egység teszt felépítéséhez.

A Python egységtesztelési keretrendszerét a java Junitjának figyelembevételével alakították ki. Ugyanazokkal a tulajdonságokkal rendelkezik, mint például az egység tesztelése más, különböző nyelveken. A Python egység tesztelésének keretrendszere segít az automatizálás tesztelésében, a megosztások beállításában, a sok teszt egy nagy halmazba történő összesítésében és a független tesztekben

Példák:

Most a példában ellenőrizzük a kódot, hogy megtudjuk az összeget Python-kódban a sum () függvény segítségével. Erre az összegzésre 12-nek kell válaszolnia, ami helyes.

>>> állítási összeg ([2, 4, 6]) == 12, "12-nek kell lennie"

Másrészt, ha rossz kimeneti értéket próbálunk megírni, amely az összeg () helytelen, akkor az eredmények kudarcot vallanak. Visszaad egy AssertionError-t. Az általunk megadott kimenet téves, azaz 12, és a tényleges kimenetnek 6-nak kell lennie, ezért visszaadta ezt a hibát.

>>> állítási összeg ([2, 2, 2]) == 12, "12-nek kell lennie"

A REPL tesztelése helyett egy új Python fájlt helyezünk el, és elnevezzük teszt_összeg.py

>> def testValue_sum ():
állítási összeg ([2, 4, 6]) == 12, "12-nek kell lennie"
ha __name__ == "__main__":
testValue_sum ()
print ("Mindent helyesen adtak át")

A teszteset megírása után elérheti a test_sum nevű könyvtárat.py fájlt, majd írja be:

$ python test_sum.py

Kimenet:

A kimeneti érték, ha hasonló a megjelenítetthez, jóváhagyja a helyes értéket.

Hozzunk létre egy másik fájlt a .py hogy teszteljék az összeget. A kódban megjelenő példa, amely másolásként mintaként használható:

def testValue_sum ():
állítási összeg ([2, 4, 6]) == 12, "12-nek kell lennie"
def testValue_sum_tuple ():
állítási összeg ((1, 1, 1)) == 6, "6-nak kell lennie"
ha __name__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
print ("Mindent helyesen adtak át")

Ezúttal ismét megnevezzük a fájlt teszt_összeg.py 

Az első kódblokk helyes, míg a második kódblokk hibás és hibás, ezért a kimenetünk ugyanazt adja vissza.

Most visszatérünk a projekt könyvtárába, ahová elmentettük a .py fájl, majd tesztelje a fájlt a következő paranccsal:

$ python test_sum.py

Kimenet:

Ezúttal, mivel a bemeneti kód hibás volt, várhatóan válaszként visszaadja az Assertion hibát.

Példa az unittest használatára:

A legmegfelelőbb követelmény az, hogy a felhasználók különböző módszerekkel osztályokba foglalhassák a teszteket, a felhasználók egy sor állítási módszert használhassanak, és a TestCase osztály használható az állítás helyett.

A felhasználók átalakíthatják az előző félidőben tárgyalt példát egyöntetűbb tesztesetté.

Először importálja az unitest könyvtárat. Ezután létre kell hoznia egy TestSumot különböző osztályokból.

Hozzon létre egy új fájlt az alább tárgyalt kódhoz:

import unittest
osztály TestSum (unittest.Próbaper):
def testValue_sum (self):
maga.assertEqual (összeg ([2, 4, 6]), 12, "12-nek kell lennie")
def testValue_sum_tuple (self):
maga.assertEqual (összeg ((1, 1, 1)), 6, "6-nak kell lennie")
ha __name__ == '__main__':
egységteszt.fő()

Miután végrehajtotta ezt a parancsot, a kimenetnek van egy pontja. Ez sikert, F pedig kudarcot jelent.

Szóval, sikereink vannak, és egy másik kudarc.

Kimenet:

Az első teszt megírása:

Hozzon létre egy új projektmappát, majd hozzon létre egy új mappát, amit sum_file-nak hívunk. Hozzon létre egy fájlt, és nevezze el, __init__.py.  Készítse el a projekt mappát, mint ez:

projekt /

└── összeg_fájl /
└── __init__.py

Ezután meg kell nyitnia a my_sum / __ init__ fájlt.py és hozzon létre egy új függvényösszeget (). Iterálható lesz (lista, duplán vagy halmazon) sok érték hozzáadása:

def összeg (arg):
total_ValueCalculated = 0
for val in arg:
total_ValueCalculated + = val
return total_ValueCalculated

Ezután létre kell hoznia a teszt fájl. Kezdje tesztek írásával, és hozzon létre egy tesztfájlt testFile.py. Az alkalmazás importálásához és teszteléséhez helyezze be a fájlt testFile.py a csomag mappája felett. Az alábbiakban áttekintjük a könyvtárat:

projekt /

├── összeg_fájl /
└── __init__.py
|
└── testFile.py

A kód kipróbálásához az előbbiekben leírtak szerint a következő parancsot használhatja a terminál ablakában / parancssorában:

$ python -m unittest teszt

Következtetés

A cikk az egység tesztelésének folyamatát tárgyalja a Pythonban. A tesztelés a szoftvertervezés egyik hasznos tulajdonsága, amely képes a kódokat kisebb darabokra osztani, majd egyesével kipróbálni. A felhasználók a teljes tesztmintát / egységkódot is összeállíthatják egy nagy gyűjteményben. Az Unittest a Python egyik funkciója a tesztelés egyszerű használatához.

Az 5 legjobb játékrögzítő kártya
Mindannyian láttuk és szerettük a YouTube-on a streaming játékokat. A PewDiePie, a Jakesepticye és a Markiplier csak néhány a legnépszerűbb játékosok ...
Hogyan lehet játékot fejleszteni Linuxon
Egy évtizeddel ezelőtt nem sok Linux-felhasználó jósolta, hogy kedvenc operációs rendszerük egy napon a videojátékok népszerű játékplatformja lesz. El...
Kereskedelmi játékmotorok nyílt forráskódú portjai
Ingyenes, nyílt forráskódú és platformokon átívelő játékmotorok szabadidős programjai felhasználhatók a régi, valamint a meglehetősen friss játékcímek...