PyUnit-opetusohjelma: Python-yksikön testauskehys (esimerkiksi)

Sisällysluettelo:

Anonim

Mikä on yksikötestaus?

Yksikkötestaus Pythonissa tehdään virheiden tunnistamiseksi sovelluksen kehitysvaiheen alkuvaiheessa, kun virheet ovat vähemmän toistuvia ja niiden korjaaminen on halvempaa.

Yksikkötesti on komentosarjattu kooditasotesti, joka on suunniteltu Pythonissa pienen toiminnallisuuden "yksikön" varmistamiseksi. Yksikkötesti on objektisuuntainen kehys, joka perustuu testilaitteiden ympärille.

Python-yksikön testaustekniikat

Python-yksikötestaus käsittää pääasiassa tietyn moduulin testaamisen ilman mitään riippuvaa koodia. Kehittäjät voivat käyttää tekniikoita, kuten tynkiä ja pilkkuja, koodin erottamiseksi "yksiköiksi" ja suorittaa yksikkötason testauksen yksittäisillä kappaleilla.

  • Test-Driven Development TDD: Yksikkötestaus tulisi tehdä yhdessä Pythonin kanssa, ja kehittäjät käyttävät sitä varten Test-Driven Development -menetelmää. TDD-menetelmässä suunnittelet ensin Python-yksikön testit ja vasta sitten jatkat tämän ominaisuuden toteuttavan koodin kirjoittamista.
  • Stubs and Mocks: Ne ovat kaksi päätekniikkaa , jotka simuloivat testattavia väärennettyjä menetelmiä. Stub käytetään täyttää joissakin riippuvuus tarvitaan yksikkö testi toimimaan oikein. Mock Toisaalta on väärennös esine, joka kulkee testit jossa laitamme assert.

    Molempien menetelmien tarkoituksena on poistaa luokan tai toiminnon kaikkien riippuvuuksien testaaminen.

Python-yksikön testauskehys

Yksikkötestausprosessin helpottamiseksi ja projektisi laadun parantamiseksi on suositeltavaa Python Unit Testing Framework. Yksikkötestauskehys sisältää

  • PyUnit: PyUnit tukee kalusteita, testitapauksia, testipaketteja ja testijuoksijaa koodin automaattiseen testaamiseen. PyUnitissa voit järjestää testitapaukset sviitteiksi, joissa on samat kalusteet
  • Nenä: Nosen sisäänrakennetut laajennukset auttavat sinua tulostuksen sieppauksessa, koodin peitossa, doctesteissä jne. Nenä-syntaksit ovat melko yksinkertaisemmat ja vähentävät testien kirjoittamisen esteitä. Se laajentaa Python unittestia testaamisen helpottamiseksi.
  • Doctest: Doctest-testauskomento menee docstringiin pienellä toiminnolla tiedoston alaosassa. Doctestin avulla voit testata koodiasi suorittamalla ohjeisiin sisältyviä esimerkkejä ja varmistamalla, että ne palauttivat odotetut tulokset. Doctestin käyttötapa on vähemmän yksityiskohtainen, eikä se saa kiinni erityistapauksista. Ne ovat hyödyllisiä ilmaisevana dokumentaationa moduulin ja sen komponenttien pääkäyttötapauksista.

Yksikkötestaus PyUnitillä

Pyunit on JUnitin Python-portti. Osana Pyunit-yksikköä unittest-moduulissa on viisi avainluokkaa.

  • TestCase-luokka : TestCase-luokka sisältää testirutiinit ja toimittaa koukut jokaisen rutiinin tekemiseen ja siivoamiseen sen jälkeen
  • TestSuite-luokka : Se palvelee keräysastiana, ja sillä voi olla useita testcase-esineitä ja useita testsuites-objekteja
  • TestLoader-luokka : Tämä luokka lataa paikallisesti tai ulkoisesta tiedostosta määriteltyjä testitapauksia ja paketteja . Se lähettää testisite-esineitä, joilla on kyseiset sviitit ja tapaukset
  • TextTestRunner-luokka : Testien suorittamiseksi se palvelee vakioalustaa testien suorittamiseen
  • TestResults-luokka : Se tarjoaa vakiotilan testituloksiin

Testitapauksen suunnittelu Python-testausta varten PyUnit-sovelluksella

Yksikkötesti tarjoaa perusluokan, testitapauksen, jota voidaan käyttää uusien testitapausten luomiseen. Testitapauksen suunnittelussa käytetään kolmea menetelmäsarjaa

unittest.TestCase

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

Ensimmäisessä sarjassa ovat koe-koukut ennen ja jälkeen. Setup () -menetelmä alkaa ennen kutakin testirutiinia, repiminen () rutiinin jälkeen.

Toinen menetelmäjoukko ohjaa testin suorittamista. Molemmat menetelmät ottavat viestimerkkijonon syötteeksi ja molemmat peruuttavat käynnissä olevan testin. Mutta skiptest () -menetelmä keskeyttää nykyisen testin, kun taas fail () -menetelmä epäonnistuu siinä kokonaan.

Viimeinen tai kolmas menetelmä auttaa määrittämään testin. Method id () palauttaa merkkijonon, joka koostuu testcase-objektin nimestä ja testirutiinista. Ja menetelmä shortDescription () palauttaa docstr-kommentin kunkin testirutiinin alkaessa.

Python Unit -testauksen käytön edut

  • Se auttaa sinua havaitsemaan virheet varhaisessa kehitysvaiheessa
  • Se auttaa sinua kirjoittamaan parempia ohjelmia
  • Se synkronoituu helposti muiden testausmenetelmien ja -työkalujen kanssa
  • Siinä on paljon vähemmän vikoja
  • Se on helpompi muokata tulevaisuudessa, jolloin seuraukset ovat pienemmät