PyUniti õpetus: Python Üksuse testimise raamistik (näitega)
Mis on ühikutestimine?
Üksuse testimine in Python Seda tehakse vigade tuvastamiseks rakenduse arendusfaasi varajases staadiumis, kui vead on vähem korduvad ja nende parandamine on odavam.
Ühikutest on skriptitud kooditaseme test, mis on loodud Python funktsionaalsuse väikese "üksuse" kontrollimiseks. Ühiktest on objektorienteeritud raamistik, mis põhineb testseadmetel.
Python Üksuse testimise tehnikad
Python Üksuse testimine hõlmab peamiselt konkreetse mooduli testimist ilma sõltuvale koodile juurdepääsuta. Arendajad saavad koodi "ühikuteks" eraldamiseks ja üksikute osade üksuse tasemel testimiseks kasutada selliseid tehnikaid nagu tünnid ja moedid.
- Testipõhise arenduse TDD: Ühiku testimine tuleks teha koos Pythonja selleks kasutavad arendajad testipõhist arendusmeetodit. TDD-meetodil kujundate kõigepealt Python Üksustestid ja alles siis jätkate selle funktsiooni rakendamise koodi kirjutamist.
-
Tükid ja pilked: Need on kaks peamist tehnikat, mis simuleerivad testitavaid võltsmeetodeid. A Stub kasutatakse mõne sõltuvuse täitmiseks, mis on vajalik üksuse testi korrektseks käitamiseks. A Muigama teisest küljest on tegemist võltsobjektiga, mis käivitab testid, kus me paneme väite.
Mõlema meetodi eesmärk on sama, et kõrvaldada klassi või funktsiooni kõigi sõltuvuste testimine.
Python Üksuse testimise raamistik
Ühiku testimise protsessi hõlbustamiseks ja projekti kvaliteedi parandamiseks on soovitatav Python Üksuse testimise raamistik. Ühiku testimise raamistik sisaldab
-
PyUnit: PyUnit toetab kinnitusi, testjuhtumeid, testikomplekte ja testimisprogrammi koodi automatiseeritud testimiseks. PyUnitis saate korraldada testjuhtumid samade kinnitusdetailidega komplektideks
-
nina: Nina sisseehitatud pistikprogrammid aitavad teil väljundi hõivamist, koodi katvust, dokteste jne. Nina süntaks on üsna lihtsam ja vähendab testide kirjutamise takistusi. See ulatub Python unittest, et testimine oleks lihtsam.
- Doctest: Doctesti testimisskript läheb docstringis väikese funktsiooniga faili allosas. Doctest võimaldab teil oma koodi testida, käivitades dokumentatsioonis sisalduvad näited ja kontrollides, kas need andsid oodatud tulemused. Doctesti kasutusjuht on vähem üksikasjalik ja ei taba erijuhtumeid. Need on kasulikud mooduli ja selle komponentide peamise kasutusjuhtumi ilmeka dokumentatsioonina.
Ühiku testimine PyUnitiga
Pyunit on a Python sadam JUnit. Pyuniti osana on unittest moodulis viis võtmeklassi.
- TestCase klass: TestCase klass kannab testimise rutiini ja pakub konksud iga rutiini tegemiseks ja seejärel puhastamiseks
- TestSuite'i klass: see toimib kogumismahutina ja sellel võib olla mitu testjuhtumiobjekti ja mitu testikomplekti objekti
- TestLoader klass: see klass laadib kohapeal või välisest failist määratletud testjuhtumid ja komplektid. See kiirgab testkomplekti objekte, millel on need komplektid ja korpused
- TextTestRunner klass: testide käitamiseks kasutab see standardset platvormi testide läbiviimiseks
- TestResults klass: See pakub testitulemuste jaoks standardset konteinerit
Testjuhtumi kujundamine Python Testimine PyUniti abil
Ühiktest pakub baasklassi ehk testjuhtumit, mida saab kasutada uute testjuhtumite loomiseks. Katsejuhtumi kujundamiseks kasutatakse kolme meetodite komplekti
unittest.TestCase
setUp() teardown() skipTest(aMesg:string) fail(aMesg:string) id():string shortDescription():string
Esimeses komplektis on testieelsed ja -järgsed konksud. Setup() meetod algab enne iga testimise rutiini, rebimine() pärast rutiini.
Teine meetodikomplekt kontrollib testi täitmist. Mõlemad meetodid võtavad sisendiks sõnumistringi ja mõlemad tühistavad käimasoleva testi. Kuid meetod skiptest() katkestab praeguse testi, samas kui meetod fail() ebaõnnestub selle täielikult.
Viimane või kolmas meetod aitavad testi määrata. Meetod id() tagastab stringi, mis koosneb testcase objekti ja testrutiini nimest. Ja meetod lühikeDescription() tagastab docstr kommentaari iga testimise rutiini alguses.
Kasutamise eelised Python Ühiku testimine
- See aitab tuvastada vigu arendustsükli varajases staadiumis
- See aitab teil kirjutada paremaid programme
- See sünkroonitakse hõlpsalt teiste testimismeetodite ja -tööriistadega
- Sellel on palju vähem vigu
- Tulevikus on seda lihtsam muuta väga väiksemate tagajärgedega