Tutorial PyUnit: Python Unit Testing Framework (cu exemplu)

Cuprins:

Anonim

Ce este testarea unitară?

Testarea unitară în Python se face pentru a identifica erorile la începutul etapei de dezvoltare a aplicației atunci când erorile sunt mai puțin recurente și mai puțin costisitoare de remediat.

Un test de unitate este un test de nivel de cod scriptat conceput în Python pentru a verifica o „unitate” mică de funcționalitate. Testul unitar este un cadru orientat pe obiecte bazat pe dispozitive de testare.

Tehnici Python Unit Testing

Testarea unității Python implică în principal testarea unui anumit modul fără a accesa niciun cod dependent. Dezvoltatorii pot folosi tehnici cum ar fi butoane și batjocuri pentru a separa codul în „unități” și pentru a rula testarea la nivel de unitate pe piesele individuale.

  • Test-Driven Development TDD: Testarea unității ar trebui să se facă împreună cu Python, iar pentru aceasta dezvoltatorii folosesc metoda Test-Driven Development. În metoda TDD, proiectați mai întâi testele Python Unit și abia apoi continuați să scrieți codul care va implementa această caracteristică.
  • Cioturi și batjocuri: sunt două tehnici principale care simulează metode false care sunt testate. Un Stub este utilizat pentru a completa o anumită dependență necesară pentru ca testul de unitate să ruleze corect. O Mock pe de altă parte , este un obiect fals care se execută testele în cazul în care ne - am pus assert.

    Intențiile ambelor metode sunt aceleași pentru a elimina testarea tuturor dependențelor unei clase sau funcții.

Python Unit Testing Framework

Pentru a face procesul de testare unitară mai ușor și pentru a îmbunătăți calitatea proiectului dvs., se recomandă cadrul de testare unitară Python. Cadrul de testare unitară include

  • PyUnit: PyUnit acceptă corpuri de iluminat, cazuri de testare, suite de testare și un tester pentru testarea automată a codului. În PyUnit, puteți organiza cazuri de testare în suite cu aceleași dispozitive
  • Nose: plug-in-urile Nose încorporate vă ajută la captarea ieșirilor, acoperirea codului, teste documente, etc. Sintaxa nasului este destul de simplă și reduce barierele în calea testelor de scriere. Extinde Python unittest pentru a facilita testarea.
  • Doctest: scriptul de testare Doctest merge în docstring cu funcție mică în partea de jos a fișierului. Doctest vă permite să vă testați codul executând exemple incluse în documentație și verificând dacă au returnat rezultatele așteptate. Utilizarea cazului doctest este mai puțin detaliată și nu surprinde cazuri speciale. Sunt utile ca documentare expresivă a principalului caz de utilizare a unui modul și a componentelor acestuia.

Testarea unității cu PyUnit

Pyunit este un port Python din JUnit. Ca parte a Pyunit, în modulul unittest există cinci clase cheie.

  • Clasa TestCase : Clasa TestCase suportă rutina de testare și oferă cârlige pentru realizarea fiecărei rutine și curățarea ulterioară
  • Clasa TestSuite : se potrivește ca un container de colectare și poate deține mai multe obiecte de testare și mai multe obiecte de testare
  • Clasa TestLoader : Această clasă încarcă cazurile de testare și suitele definite local sau dintr-un fișier extern. Emite obiecte de testare care posedă acele suite și cazuri
  • Clasa TextTestRunner : pentru a rula testele, este o platformă standard pentru executarea testelor
  • Clasa TestResults : oferă un container standard pentru rezultatele testului

Proiectarea unui caz de testare pentru testarea Python folosind PyUnit

Un test de unitate oferă o clasă de bază, caz de testare, care poate fi utilizat pentru a crea noi cazuri de testare. Pentru proiectarea cazului de testare, există trei seturi de metode utilizate

unittest.TestCase

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

În primul set sunt cârligele pre și post test. Metoda setup () începe înaintea fiecărei rutine de testare, după dezmembrarea () după rutină.

Al doilea set de metode controlează execuția testului. Ambele metode iau un șir de mesaje ca intrare și ambele anulează un test în curs. Dar metoda skiptest () întrerupe testul curent în timp ce metoda fail () eșuează complet.

Ultima sau a treia metodă ajută la determinarea testului. Metoda id () returnează un șir constând din numele obiectului testcase și din rutina de testare. Și metoda shortDescription () returnează comentariul docstr la inițierea fiecărei rutine de testare.

Avantajele utilizării testării Python Unit

  • Vă ajută să detectați erori la începutul ciclului de dezvoltare
  • Vă ajută să scrieți programe mai bune
  • Se sincronizează ușor cu alte metode și instrumente de testare
  • Va avea mult mai puține bug-uri
  • Este mai ușor de modificat în viitor, cu consecințe foarte mici