Tutorial PyUnit: Python Cadrul de testare unitară (cu exemplu)

Ce este testarea unitară?

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

Un test unitar este un test la 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.

Python Tehnici de testare unitară

Python Testarea unitară implică în principal testarea unui anumit modul fără a accesa niciun cod dependent. Dezvoltatorii pot folosi tehnici precum stub-uri și imitații pentru a separa codul în „unități” și a rula testarea la nivel de unitate pe piesele individuale.

  • Dezvoltare bazată pe teste TDD: Testarea unitară ar trebui făcută împreună cu Python, iar pentru asta dezvoltatorii folosesc metoda Test-Driven Development. În metoda TDD, mai întâi proiectați Python Teste unitare și abia apoi continuați să scrieți codul care va implementa această caracteristică.
  • Stub-uri și imitații: Sunt două tehnici principale care simulează metode false care sunt testate. A Ciot este folosit pentru a completa anumite dependențe necesare pentru ca testul unitar să ruleze corect. A A-și bate joc pe de altă parte este un obiect fals care rulează testele în care punem assert.

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

Python Cadrul de testare unitară

Pentru a ușura procesul de testare unitară și pentru a îmbunătăți calitatea proiectului dumneavoastră, se recomandă Python Cadrul de testare unitară. Cadrul de testare unitară include

Python Tehnici de testare unitară

  • PyUnit: PyUnit acceptă instalații, cazuri de testare, suite de testare și un rulant de testare pentru testarea automată a codului. În PyUnit, puteți organiza cazuri de testare în suite cu aceleași dispozitive
  • nas: Plug-in-urile încorporate ale Nose vă ajută cu captarea rezultatelor, acoperirea codului, testele documentare etc. Sintaxa Nose este destul de simplă și reduce barierele în calea scrierii testelor. Se extinde Python unittest pentru a facilita testarea.
  • Doctest: Scriptul de testare Doctest merge în docstring cu o funcție mică în partea de jos a fișierului. Doctest vă permite să testați codul rulând exemplele incluse în documentație și verificând dacă au returnat rezultatele așteptate. Cazul de utilizare al doctest este mai puțin detaliat și nu prinde cazuri speciale. Sunt utile ca o documentare expresivă a cazului de utilizare principal al unui modul și componentelor acestuia.

Testarea unitară cu PyUnit

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

Testarea unitară cu PyUnit

  • Clasa TestCase: Clasa TestCase poartă rutinele de testare și oferă cârlige pentru realizarea fiecărei rutine și curățarea ulterioară
  • Clasa TestSuite: Funcționează ca un container de colectare și poate avea mai multe obiecte testcase și mai multe obiecte testsuites
  • Clasa TestLoader: Această clasă încarcă cazuri de testare și suite definite local sau dintr-un fișier extern. Emite obiecte testsuite care posedă acele suite și cazuri
  • Clasa TextTestRunner: Pentru a rula testele, oferă o platformă standard pentru a executa testele
  • Clasa TestResults: Oferă un container standard pentru rezultatele testelor

Proiectarea unui caz de testare pentru Python Testare folosind PyUnit

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

Proiectarea unui caz de testare pentru Python

unittest.TestCase

setUp()
teardown()

skipTest(aMesg:string)
fail(aMesg:string)

id():string
shortDescription():string

În primul set sunt cârligele pre și post test. Metoda setup() începe înainte de fiecare rutină de testare, teardown() după rutină.

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

Ultima sau a treia metodă ajută la determinarea testului. Metoda id() returnează un șir format din numele obiectului testcase și al rutinei de testare. Și metoda scurtăDescription() returnează comentariul docstr la inițierea fiecărei rutine de testare.

Avantajele utilizării Python Testarea unității

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