„PyUnit“ pamoka: „Python“ vienetų testavimo sistema (su pavyzdžiu)

Turinys:

Anonim

Kas yra vieneto testavimas?

„Unit Testing“ sistemoje „Python“ atliekamas klaidų nustatymas ankstyvoje programos kūrimo stadijoje, kai klaidos yra mažiau pasikartojančios ir jas pigiau ištaisyti.

Vieneto testas yra scenarijaus kodo lygio testas, sukurtas „Python“, siekiant patikrinti nedidelį funkcionalumo „vienetą“. „Unit test“ yra objektinė sistema, pagrįsta testo įranga.

„Python“ vienetų testavimo metodikos

„Python Unit Testing“ daugiausia apima tam tikro modulio testavimą, nepasiekiant jokio priklausomo kodo. Kūrėjai gali naudoti tokias technikas kaip štamai ir maketai, kad suskirstytų kodą į „vienetus“ ir atliktų atskirų vienetų bandymus.

  • Test-Driven Development TDD: vieneto testavimas turėtų būti atliekamas kartu su „Python“ ir tam kūrėjai naudoja „Test-Driven Development“ metodą. Taikant TDD metodą, pirmiausia sukuriate „Python Unit“ testus ir tik tada rašote kodą, kuris įgyvendins šią funkciją.
  • Stubai ir pasityčiojimai: tai yra du pagrindiniai metodai, imituojantys netikrus metodus, kurie yra bandomi. Stub naudojamas užpildyti tam tikrą priklausomybės reikalingas vieneto bandymą, kad tinkamai paleisti. Mock Kita vertus yra suklastotas daiktas, kuris veikia bandymus, kur mes įdėti teigti.

    Abiejų metodų tikslas yra tas pats, kad būtų galima pašalinti visų klasės ar funkcijos priklausomybių testavimą.

„Python Unit Testing Framework“

Norint palengvinti vieneto testavimo procesą ir pagerinti jūsų projekto kokybę, rekomenduojama „Python Unit Testing Framework“. Į vieneto testavimo sistemą įeina:

  • „PyUnit“: „ PyUnit“ palaiko šviestuvus, bandymų atvejus, bandomuosius rinkinius ir bandomąjį bėgiklį automatizuotam kodo testavimui. „PyUnit“ galite susisteminti bandomuosius atvejus į komplektus su tais pačiais įrenginiais
  • Nosis: „ Nose“ integruoti papildiniai padeda jums fiksuoti išvestį, koduoti aprėptį, atlikti testus ir pan. Nosies sintaksė yra gana paprastesnė ir sumažina testų rašymo kliūtis. Tai išplečia „Python“ unittest, kad būtų lengviau atlikti bandymus.
  • „Doctest“: „ Doctest“ testavimo scenarijus yra „docstring“ su maža funkcija failo apačioje. „Doctest“ leidžia išbandyti kodą vykdant pavyzdinius dokumentus, įtrauktus į dokumentaciją, ir patikrinant, ar jie pateikė laukiamus rezultatus. Doctest naudojimo atvejis yra mažiau išsamus ir neįtraukia ypatingų atvejų. Jie yra naudingi kaip aiškus pagrindinio modulio ir jo komponentų naudojimo atvejo dokumentavimas.

Įrenginių bandymai naudojant „PyUnit“

„Pyunit“ yra „JUnit“ Python prievadas. Kaip „Pyunit“ dalis, vieningiausiame modulyje yra penkios pagrindinės klasės.

  • „TestCase“ klasė : „TestCase“ klasė turi testavimo tvarką ir pateikia kablius kiekvienai rutinai atlikti ir vėliau valyti.
  • „TestSuite“ klasė : ji skirta kaip surinkimo talpykla ir gali turėti kelis „testcase“ objektus ir kelis „testsuites“ objektus
  • „TestLoader“ klasė : ši klasė įkelia bandymo atvejus ir rinkinius, apibrėžtus vietoje arba iš išorinio failo. Jis skleidžia bandymų objektus, kurie turi tuos komplektus ir dėklus
  • „TextTestRunner“ klasė : norint vykdyti testus, jis pasirūpina standartine platforma testams atlikti
  • „TestResults“ klasė : ji siūlo standartinę talpyklą bandymų rezultatams

Kuriant „Python“ testavimo atvejį naudojant „PyUnit“

Vienetinis testas suteikia pagrindinę klasę, bandymo atvejį, kuris gali būti naudojamas kuriant naujus bandymų atvejus. Kuriant bandymo atvejį, naudojami trys metodų rinkiniai

unittest.TestCase

setUp()teardown()skipTest(aMesg:string)fail(aMesg:string)id():stringshortDescription():string

Pirmame rinkinyje yra pasirengimo ir po bandymo kabliai. Sąrankos () metodas prasideda prieš kiekvieną bandymo procedūrą, išardymas () po rutinos.

Antrasis metodo rinkinys kontroliuoja testo vykdymą. Abiem būdais pranešimo eilutė laikoma įvestimi ir abu atšaukia vykstantį bandymą. Tačiau metodas skiptest () nutraukia dabartinį bandymą, o fail (fail () - nepavyksta.

Paskutinis arba trečias metodas padeda nustatyti testą. Metodas id () pateikia eilutę, susidedančią iš „testcase“ objekto pavadinimo ir bandymo rutinos. Metodas shortDescription () grąžina docstr komentarą pradedant kiekvieną bandymo procedūrą.

„Python Unit“ testavimo naudojimo pranašumai

  • Tai padeda jums nustatyti klaidas ankstyvoje kūrimo ciklo vietoje
  • Tai padeda jums parašyti geresnes programas
  • Jis lengvai sinchronizuojamas su kitais bandymo metodais ir įrankiais
  • Tai turės daug mažiau klaidų
  • Ateityje tai lengviau modifikuoti, o pasekmės bus mažesnės