Mi az egység tesztelése?
Az egység tesztelése a Pythonban a hibák azonosítására szolgál az alkalmazás fejlesztési szakaszának elején, amikor a hibák kevésbé ismétlődőek és olcsóbban javíthatók.
Az egység teszt egy szkriptelt kódszintű teszt, amelyet a Python fejlesztett ki, hogy ellenőrizze a funkcionalitás egy kis "egységét". Az Unit teszt egy objektum-orientált keretrendszer, amely a tesztberendezések köré épül.
Python egység tesztelési technikák
A Python Unit Testing főként egy adott modul tesztelését jelenti függő kód elérése nélkül. A fejlesztők olyan technikákat használhatnak, mint a csonkok és a csúfolódások, hogy a kódot "egységekre" válasszák, és az egyes darabokon egységszintű tesztelést hajtsanak végre.
- Test-Driven Development TDD: Az egység tesztelését a Python-nal együtt kell elvégezni, és ehhez a fejlesztők a Test-Driven Development módszert használják. A TDD módszerben először meg kell terveznie a Python Unit teszteket, és csak ezután folytatja a kódot, amely megvalósítja ezt a funkciót.
- Csonkok és gúnyok: Két fő technika, amelyek a tesztelt hamis módszereket szimulálják. A Terminál megtöltésére használt valamilyen függőség szükséges egység teszt helyesen. A Mock viszont hamis objektum, amely lefuttatja azokat a teszteket, ahol az állításunkat tesszük.
Mindkét módszer célja ugyanaz, hogy kiküszöbölje egy osztály vagy függvény összes függőségének tesztelését.
Python Unit Testing Framework
Az egység tesztelési folyamatának megkönnyítése és a projekt minőségének javítása érdekében ajánlott a Python Unit Testing Framework. A Unit Testing keretrendszer tartalmazza a következőket:
- PyUnit: A PyUnit a készülék automatizált teszteléséhez támogatja a felszereléseket, a teszteseteket, a tesztcsomagokat és a tesztfutót. A PyUnitben teszteseteket rendezhet lakosztályokká ugyanazokkal a felszerelésekkel
- Orr: Az orr beépített plug-injei segítenek a kimenet rögzítésében, a kód lefedettségében, a doctesztekben stb. Az orr szintaxisa meglehetősen egyszerűbb és csökkenti a tesztek írásának akadályait. A tesztelés megkönnyítése érdekében kiterjeszti a Python unittest funkciót.
- Doctest: A Doctest tesztelési parancsfájl a docstringben megy, kis funkcióval a fájl alján. A Doctest lehetővé teszi a kód tesztelését a dokumentációban található példák futtatásával és annak ellenőrzésével, hogy azok a várt eredményeket adták-e meg. A doctest felhasználási esete kevésbé részletes, és nem ragadja meg a speciális eseteket. Hasznosak a modul és annak alkotóelemeinek fő használati esetének kifejező dokumentációjaként.
Egység tesztelése PyUnit segítségével
A Pyunit a JUnit Python portja. A Pyunit részeként az unittest modulban öt kulcsosztály van.
- TestCase osztály : A TestCase osztály viseli a teszt rutinokat és horgokat szállít az egyes rutinok elkészítéséhez és a későbbi takarításhoz
- TestSuite osztály : Gyűjtőtárolóként szolgál, és több testcase objektummal és több testsuites objektummal is rendelkezhet
- TestLoader osztály : Ez az osztály helyileg vagy egy külső fájlból definiált teszteseteket és csomagokat tölt be. Testsuite tárgyakat bocsát ki, amelyek birtokolják ezeket a csomagokat és tokokat
- TextTestRunner osztály : A tesztek futtatásához szabványos platformot biztosít a tesztek végrehajtására
- A TestResults osztály : A teszt eredményeihez szabványos tartályt kínál
Teszteset tervezése Python teszteléshez PyUnit használatával
Az egységteszt egy alaposztályt, tesztesetet nyújt, amelyet felhasználhatunk új tesztesetek létrehozására. A teszteset megtervezéséhez háromféle módszer használható
unittest.TestCase
setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string
Az első készletben vannak az elő- és utó teszt horgok. A setup () módszer minden teszt rutin előtt kezdődik, a lebontás () a rutin után.
A második módszerkészlet a teszt végrehajtását vezérli. Mindkét módszer beveszi az üzenet karakterláncát, és mindkettő törli a folyamatban lévő tesztet. De a skiptest () metódus megszakítja az aktuális tesztet, míg a fail () metódus teljesen kudarcot vall.
Az utolsó vagy harmadik módszer segít meghatározni a tesztet. A method id () egy stringet ad vissza, amely a testcase objektum nevéből és a teszt rutinból áll. A shortDescription () metódus pedig a docstr megjegyzést adja vissza az egyes tesztprogramok megindításakor.
A Python Unit tesztelésének előnyei
- Ez segít a hibák észlelésében a fejlesztési ciklus elején
- Segít jobb programok megírásában
- Könnyen szinkronizálható más tesztelési módszerekkel és eszközökkel
- Sokkal kevesebb hiba lesz
- Könnyebb a jövőben módosítani, kevesebb következménnyel