Kas ir vienības testēšana?
Vienību testēšana Python tiek veikta, lai identificētu kļūdas jau lietojumprogrammas izstrādes stadijā, kad kļūdas ir mazāk atkārtotas un to labošana ir lētāka.
Vienības pārbaude ir skriptu koda līmeņa pārbaude, kas izstrādāta Python, lai pārbaudītu nelielu funkcionalitātes "vienību". Vienības pārbaude ir objektorientēta sistēma, kuras pamatā ir testa aprīkojums.
Python vienību testēšanas paņēmieni
Python Unit Testing galvenokārt ietver konkrēta moduļa testēšanu, nepiekļūstot nevienam atkarīgam kodam. Izstrādātāji var izmantot tādas metodes kā celmi un izspēles, lai sadalītu kodu "vienībās" un veiktu vienības līmeņa testēšanu atsevišķiem gabaliem.
- Testējama izstrādes TDD: vienības testēšana jāveic kopā ar Python, un izstrādātāji šim nolūkam izmanto testējamās attīstības metodi. TDD metodē vispirms noformējat Python Unit testus un tikai pēc tam turpiniet rakstīt kodu, kas ieviesīs šo funkciju.
- Stubi un izspēles: tie ir divi galvenie paņēmieni, kas simulē pārbaudītās viltus metodes. Pasaknis tiek izmantoti, lai aizpildītu kādu atkarību nepieciešama vienības testu palaist pareizi. No otras puses, izspēles ir viltots objekts, kas veic testus, kur mēs apgalvojam.
Abu metožu nolūks ir vienāds, lai izslēgtu visu klases vai funkcijas atkarību testēšanu.
Python Unit Testing Framework
Lai atvieglotu vienību testēšanas procesu un uzlabotu projekta kvalitāti, ieteicams izmantot Python Unit Testing Framework. Vienības testēšanas ietvars ietver
- PyUnit: PyUnit atbalsta armatūru, testa gadījumus, testa komplektus un testa skrējēju koda automatizētai pārbaudei. Programmā PyUnit testa gadījumus varat sakārtot komplektos ar vienādām ierīcēm
- Deguns: deguna iebūvētie spraudņi palīdz jums iegūt izejas uztveršanu, koda pārklājumu, doctestus utt. Deguna sintakse ir diezgan vienkāršāka un samazina šķēršļus testu rakstīšanai. Tas paplašina Python vienotību, lai atvieglotu testēšanu.
- Doctest: Doctest testēšanas skripts tiek izmantots docstring ar nelielu funkciju faila apakšdaļā. Doctest ļauj pārbaudīt kodu, palaižot dokumentācijā iekļautos piemērus un pārbaudot, vai tie sniedza gaidītos rezultātus. Doctest lietošanas gadījums ir mazāk detalizēts un neaptver īpašus gadījumus. Tie ir noderīgi kā moduļa un tā sastāvdaļu galvenā lietošanas gadījuma izteiksmīga dokumentācija.
Vienības testēšana ar PyUnit
Pyunit ir JUnit Python ports. Kā daļa no Pyunit vienotajā modulī ir piecas galvenās klases.
- TestCase klase : TestCase klasei ir testēšanas kārtība un tiek piegādāti āķi katras rutīnas veikšanai un tīrīšanai pēc tam.
- TestSuite klase : Tas ir paredzēts kā savākšanas konteiners, un tam var būt vairāki testcase objekti un vairāki testsuites objekti
- TestLoader klase : Šī klase ielādē testa gadījumus un komplektus, kas definēti lokāli vai no ārēja faila. Tas izstaro izmēģinājuma priekšmetus, kuriem piemīt šie komplekti un lietas
- TextTestRunner klase : Lai veiktu testus, tā nodrošina standarta platformu testu veikšanai
- TestResults klase : tā piedāvā standarta konteineru testa rezultātiem
Testa gadījuma noformēšana Python testēšanai, izmantojot PyUnit
Vienības pārbaude nodrošina bāzes klasi, testa gadījumu, kuru var izmantot, lai izveidotu jaunus testa gadījumus. Izstrādājot testa gadījumu, tiek izmantoti trīs metožu komplekti
unittest.TestCase
setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string
Pirmajā komplektā ir pirms un pēc pārbaudes āķi. Metode setup () sākas pirms katras testa rutīnas, nojaukšana () pēc rutīnas.
Otrais metožu kopums kontrolē testa izpildi. Abās metodēs ziņojuma virkne tiek izmantota kā ievade, un abas atceļ notiekošo testu. Bet skiptest () metode pārtrauc pašreizējo testu, bet fail () metode neizdodas pilnībā.
Pēdējā vai trešā metode palīdz noteikt testu. Metode id () atgriež virkni, kas sastāv no testcase objekta nosaukuma un testa rutīnas. Metode shortDescription () atgriež docstr komentāru katras testa rutīnas sākumā.
Python Unit testēšanas izmantošanas priekšrocības
- Tas palīdz atklāt kļūdas izstrādes cikla sākumā
- Tas palīdz jums uzrakstīt labākas programmas
- Tas viegli sinhronizējas ar citām testēšanas metodēm un rīkiem
- Tajā būs daudz mazāk kļūdu
- Nākotnē to ir vieglāk modificēt, un tam ir mazāk seku