Mis on üksuse testimine?
Üksuste testimine Pythonis tehakse vigade tuvastamiseks rakenduse väljatöötamise varases staadiumis, kui vead on vähem korduvad ja nende parandamine odavam.
Ühikutest on skriptitud kooditaseme test, mis on loodud Pythonis, et kontrollida väikest funktsionaalsuse "ühikut". Ühikutest on objektisuunaline raamistik, mis põhineb testiseadmete ümber.
Pythoni üksuse testimise tehnikad
Pythoni üksuste testimine hõlmab peamiselt konkreetse mooduli testimist ilma mingile sõltuvale koodile juurde pääsemata. Arendajad saavad kasutada koodide eraldamiseks ühikuteks ja üksikutel tükkidel üksuse taseme testimist, näiteks tüvesid ja mõnitusi.
- Test-Driven Development TDD: üksuse testimine peaks toimuma koos Pythoniga ja selleks kasutavad arendajad Test-Driven Development meetodit. TDD-meetodis kujundate kõigepealt Pythoni üksuse testid ja alles seejärel jätkate selle funktsiooni rakendava koodi kirjutamist.
- Stubs and Mocks: need on kaks peamist tehnikat, mis simuleerivad testitud võltsmeetodeid . Stubkuva kasutatakse täita mõned sõltuvuse vajalik üksuse test korrektseks töötamiseks. Mock teiselt poolt on võlts objekt, mis jookseb testid, kus me paneme väidavad.
Mõlema meetodi kavatsused on klassi või funktsiooni kõigi sõltuvuste testimise kõrvaldamiseks ühesugused.
Pythoni üksuse testimise raamistik
Üksuste testimise protsessi lihtsustamiseks ja projekti kvaliteedi parandamiseks on soovitatav Pythoni üksuse testimise raamistik. Üksuse testimise raamistik sisaldab järgmist
- PyUnit: PyUnit toetab koodi automatiseeritud testimiseks võistlusi, testjuhtumeid, testikomplekte ja testijooksjat. Rakenduses PyUnit saate testjuhtumid korraldada samade seadmetega sviitideks
- Nina: nina sisseehitatud pistikprogrammid aitavad teil väljundite hõivamisel, koodide katvusel, doktestidel jne. Nina süntaks on üsna lihtsam ja vähendab takistusi testide kirjutamisel. Testimise hõlbustamiseks laiendab see Pythoni ühtsust.
- Doctest: Doctesti testimisskript töötab docstringis koos väikese funktsiooniga faili allosas. Doctest võimaldab teil oma koodi testida, käivitades dokumentatsiooni lisatud näited ja kontrollides, kas need andsid oodatud tulemused. Doctesti kasutusjuht on vähem üksikasjalik ja ei hõlma erijuhtumeid. Need on kasulikud kui mooduli ja selle komponentide peamise kasutusjuhtumi väljendusrikas dokumentatsioon.
Üksuse testimine PyUnitiga
Pyunit on JUniti Pythoni port. Pyuniti osana on unittest moodulis viis võtmeklassi.
- TestCase klass : TestCase klass kannab testiprotseduure ja annab konksud iga rutiini tegemiseks ja seejärel puhastamiseks
- TestSuite klass : see sobib kogumismahutina ja sellel võib olla mitu testcase-objekti ja mitu testsuites-objekti
- TestLoaderi klass : see klass laadib kohapeal või välisest failist määratletud testjuhud ja komplektid. See kiirgab testikohti, mis omavad neid sviite ja juhtumeid
- TextTestRunner klass : testide läbiviimiseks näeb see ette standardse platvormi testide läbiviimiseks
- Klass TestResults : see pakub testitulemuste jaoks tavalist konteinerit
Katseprojekti kujundamine PyUni testimiseks PyUniti abil
Ühikutest annab baasklassi, testjuhtumi, mida võib kasutada uute testjuhtumite loomiseks. Testjuhtumi kujundamiseks on kasutatud kolme meetodite komplekti
unittest.TestCase
setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string
Esimeses komplektis on eel- ja järelkonksud. Meetod setup () algab enne iga testrutiini, lõhkumine () pärast rutiini.
Teine meetodite komplekt kontrollib testi täitmist. Mõlemad meetodid võtavad sisendina sõnumistringi ja mõlemad tühistavad käimasoleva testi. Kuid meetod skiptest () katkestab praeguse testi, samas kui meetod fail () nurjub selle täielikult.
Katse määramisel on abiks viimane või kolmas meetod. Meetod id () tagastab stringi, mis koosneb testcase objekti nimest ja testrutiinist. Ja meetod shortDescription () tagastab docstr kommentaari iga testiprotseduuri alustamisel.
Pythoni üksuse testimise kasutamise eelised
- See aitab teil vigu avastada arengutsükli alguses
- See aitab teil kirjutada paremaid programme
- See sünkroniseerub hõlpsalt teiste testimismeetodite ja -vahenditega
- Sellel on palju vähem vigu
- Tulevikus on seda lihtsam modifitseerida, mille tagajärjed on väiksemad