Vadnica za PyUnit: Okvir za testiranje enote Python (s primerom)

Kazalo:

Anonim

Kaj je enotno testiranje?

Enotno preskušanje v Pythonu se opravi za prepoznavanje napak v zgodnji razvojni fazi aplikacije, ko se napake manj ponavljajo in so cenejše za odpravljanje.

Preizkus enote je test na ravni skriptne kode, zasnovan v Pythonu za preverjanje majhne "enote" funkcionalnosti. Enoten test je objektno usmerjen okvir, ki temelji na preskusnih napravah.

Tehnike testiranja enote Python

Preizkušanje enote Python v glavnem vključuje preizkušanje določenega modula brez dostopa do katere koli odvisne kode. Razvijalci lahko s pomočjo tehnik, kot so škrbine in posmehi, ločijo kodo na "enote" in na posameznih kosih zaženejo testiranje na ravni enote.

  • TDD-Driven Development TDD: enotno testiranje je treba opraviti skupaj s Pythonom, za to pa razvijalci uporabljajo Test-Driven Development metodo. V metodi TDD najprej oblikujete teste Python Unit in šele nato nadaljujete s pisanjem kode, ki bo izvajala to funkcijo.
  • Stubs and Mocks: To sta dve glavni tehniki, ki simulirata lažne metode, ki se preizkušajo. Stub se uporablja za polnila v neki odvisnosti, potrebnih za preskus enote za delovanje. Mock , na drugi strani pa je ponaredek objekt, ki izvaja teste, kjer smo dal uveljaviti.

    Namen obeh metod je enak, da bi odpravili preizkušanje vseh odvisnosti razreda ali funkcije.

Python Unit Testing Framework

Da bi olajšali postopek enotnega preizkušanja in izboljšali kakovost vašega projekta, priporočamo Python Unit Testing Framework. Okvir enote za preskušanje vključuje

  • PyUnit: PyUnit podpira napeljave, testne primere, testne pakete in preizkusni program za avtomatizirano testiranje kode. V PyUnit lahko preskusne primere organizirate v apartmaje z enakimi napravami
  • Nos: Vgrajeni vtičniki Nose vam pomagajo pri zajemanju izhodov, pokritosti kode, doktorskih testih itd. Sintaksa nosu je precej preprostejša in zmanjšuje ovire za pisanje testov. Razširi Python unittest, da olajša testiranje.
  • Doctest: Skript za testiranje Doctest gre v docstring z majhno funkcijo na dnu datoteke. Doctest vam omogoča, da svojo kodo preizkusite tako, da zaženete primere iz dokumentacije in preverite, ali so vrnili pričakovane rezultate. Primer uporabe doctesta je manj podroben in ne zajema posebnih primerov. Uporabni so kot izrecna dokumentacija o glavni uporabi modula in njegovih komponent.

Enotno testiranje s PyUnit

Pyunit je Pythonovo pristanišče JUnit. Kot del Pyunita je v modulu unittest pet ključnih razredov.

  • Razred TestCase : razred TestCase ima preskusne rutine in prinaša kljuke za izdelavo vsake rutine in čiščenje po njem
  • Razred TestSuite : služi kot vsebnik za zbiranje in ima lahko več predmetov testnega primera in več predmetov testsuites
  • Razred TestLoader : Ta razred naloži testne primere in suite, definirane lokalno ali iz zunanje datoteke. Oddaja predmete za testne komplete, ki imajo te suite in ohišja
  • Razred TextTestRunner : za izvajanje testov skrbi za izvajanje standardne platforme
  • Razred TestResults : ponuja standardni vsebnik za rezultate preskusov

Oblikovanje testnega primera za testiranje Python z uporabo PyUnit

Enoten test nudi osnovni razred, testni primer, ki ga lahko uporabimo za ustvarjanje novih testnih primerov. Za oblikovanje testnega primera obstajajo trije sklopi uporabljenih metod

unittest.TestCase

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

V prvem nizu so pred in po preskusni kljuki. Metoda setup () se začne pred vsako preizkusno rutino, odstranitev () po rutini.

Drugi sklop metode nadzira izvajanje testa. Obe metodi za vhod vzameta niz sporočil in oba prekličeta tekoči test. Toda metoda preskok () prekine trenutni test, medtem ko metoda fail () popolnoma ne uspe.

Zadnja ali tretja metoda pomaga pri določanju testa. Metoda id () vrne niz, ki je sestavljen iz imena predmeta testca in preizkusne rutine. In metoda shortDescription () vrne komentar docstr na začetku vsake preizkusne rutine.

Prednosti uporabe testiranja Python Unit

  • Pomaga vam pri odkrivanju napak v zgodnjem razvojnem ciklu
  • Pomaga vam pri pisanju boljših programov
  • Preprosto se sinhronizira z drugimi preskusnimi metodami in orodji
  • Imelo bo veliko manj napak
  • V prihodnosti ga je lažje spremeniti z zelo malo posledicami