PyUnit oktatóanyag: Python Unit Testing Framework (példával)

Tartalomjegyzék:

Anonim

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