Piton

Tutorial Python Unittest

Tutorial Python Unittest

Testarea unității este o metodă de testare utilizată în ingineria software pentru unități individuale din orice cod. Utilizatorii pot pune testele individuale pentru a determina starea sursei și cât de mult codul este potrivit pentru a fi utilizat. Astfel, utilizatorii pot testa calitatea codului.

Testarea se face după finalizarea procesului de dezvoltare. Utilizatorii pot începe, de asemenea, testarea atunci când scriptul de testare trebuie verificat pe baza criteriilor testării. Se așteaptă ca dezvoltatorii să scrie tipurile manuale ale codului sursă. În general, scrierea manuală a codurilor de testare a unității este o sarcină agitată, dar în Python, se face folosind o funcție încorporată numită unittest.

Unittest

Testarea în Python se face printr-un cadru unic. Testarea unității face codul sigur și ușor de utilizat și în viitor. De obicei, utilizatorii nu pot prezice aceste cazuri, dar le pot adresa cu ușurință. Unittest poate fi întregul modul, o anumită funcție și o interfață întreagă (clasă / modul).

Cum să scrieți teste unitare pentru codul dvs?

Pentru a scrie testele unitare pentru codul dvs., începeți întotdeauna cu cea mai mică unitate care poate fi testată din întregul cod, apoi treceți mai departe la alte unități. În acest fel veți verifica modul în care interacționează cea mai mică unitate aleasă pentru a construi un întreg test de unitate.

Cadrul de testare unitară a Python a fost format luând în considerare Junit-ul Java. Are aceleași caracteristici ca și testarea unitară se face în alte tipuri de limbi. Cadrul testării unitare în Python ajută la testarea automatizării, configurarea partajării, agregarea multor teste într-un singur set mare și teste independente

Exemple:

Acum, în exemplu, verificăm codul pentru a afla suma din codul Python folosind funcția sum (). Răspunsul la această însumare trebuie să fie 12, ceea ce este corect.

>>> afirmă suma ([2, 4, 6]) == 12, „Ar trebui să fie egal cu 12”

Pe de altă parte, dacă încercăm să scriem o valoare de ieșire greșită, care suma () este incorectă, rezultatele vor eșua. Se va returna o AssertionError. Rezultatul declarat de noi este greșit, adică 12, iar ieșirea reală trebuie să fie 6, prin urmare, a returnat această eroare.

>>> afirmă suma ([2, 2, 2]) == 12, „Ar trebui să fie egal cu 12”

Acum, în loc să testăm pe REPL, vom introduce un nou fișier Python și îl vom denumi test_sum.py

>> def testValue_sum ():
afirmă suma ([2, 4, 6]) == 12, „Ar trebui să fie egal cu 12”
dacă __name__ == "__main__":
testValue_sum ()
print („Totul a fost transmis corect”)

După ce scrieți cazul de testare, puteți accesa directorul care are test_sum.py, apoi tastați:

$ python test_sum.py

Ieșire:

Valoarea de ieșire, atunci când este similară cu cea afișată, va aproba valoarea corectă.

Să creăm un alt fișier pentru .py pentru a testa suma. Exemplul afișat în cod și care poate fi folosit ca eșantion prin copiere:

def testValue_sum ():
afirmă suma ([2, 4, 6]) == 12, „Ar trebui să fie egal cu 12”
def testValue_sum_tuple ():
afirmă suma ((1, 1, 1)) == 6, „Ar trebui să fie egal cu 6”
dacă __name__ == "__main__":
testValue_sum ()
testValue_sum_tuple ()
print („Totul a fost transmis corect”)

De data aceasta vom denumi din nou fișierul test_sum.py 

Primul bloc de cod este corect, în timp ce al doilea bloc de cod este greșit și are o eroare, astfel încât ieșirea noastră va reveni la fel.

Acum, vom reveni la directorul proiectului, unde am salvat .fișier py, și apoi testați fișierul folosind următoarea comandă:

$ python test_sum.py

Ieșire:

De data aceasta, deoarece codul de intrare a avut o eroare, este de așteptat să returneze eroarea de afirmare ca răspuns.

Exemplu de utilizare a unittest:

Cerințele unittest sunt ca utilizatorii să își poată testa testele în clase ca metode diferite, utilizatorii pot utiliza o serie de metode de afirmare, iar clasa TestCase poate fi utilizată în locul declarației de afirmare.

Utilizatorii pot converti exemplul discutat în jumătatea precedentă într-un caz de test unic.

În primul rând, importați biblioteca unitară. Apoi, trebuie să creați un TestSum din diferite clase.

Creați un fișier nou pentru codul discutat mai jos:

import unittest
clasa TestSum (unittest.TestCase):
def testValue_sum (auto):
de sine.assertEqual (suma ([2, 4, 6]), 12, „Ar trebui să fie egal cu 12”)
def testValue_sum_tuple (auto):
de sine.assertEqual (suma ((1, 1, 1)), 6, „Ar trebui să fie egal cu 6”)
dacă __name__ == '__main__':
mai neadecvat.principal()

Odată ce ați executat această comandă, ieșirea are un punct. Aceasta înseamnă succes, iar F înseamnă un eșec.

Deci, avem succes, iar altul este un eșec.

Ieșire:

Scrierea primului test:

Creați un folder nou de proiect și apoi creați un folder nou, îl vom numi sum_file. În interior, creați un fișier și denumiți-l, __init__.py.  Faceți folderul proiectului astfel:

proiect/

└── sum_file /
└── __init__.py

Apoi, trebuie să deschideți my_sum / __ init__.py și creați o nouă funcție sum (). Va fi iterabil (o listă, tuplu sau set) să adăugați multe valori:

def sum (arg):
total_ValueCalculated = 0
pentru val în arg:
total_ValueCalculated + = val
returnează Valoare_Calculată total

Apoi, trebuie să creați un Test fişier. Începeți prin scrierea testelor și creați un fișier de testare numit testFile.py. Pentru a importa aplicația și trebuie testată, plasați fișierul testFile.py deasupra dosarului pachetului. Următoarele vor fi aspectul general al directorului dvs.:

proiect/

├── sum_file /
│ └── __init__.py
|
└── testFile.py

După cum sa discutat anterior pentru a testa codul, puteți utiliza următoarea comandă în fereastra terminalului / linia de comandă:

$ python -m unittest test

Concluzie

Articolul discută procesul de testare a unității în Python. Testarea este una dintre caracteristicile utile ale ingineriei software care este capabilă să împartă codurile în bucăți mai mici și apoi să le încerce unul câte unul. Utilizatorii pot, de asemenea, să compileze întreaga probă / coduri de unitate într-o singură mare colecție. Unittest este o funcție utilizată în Python pentru a face o utilizare ușoară a testării.

Best Gamepad Mapping Apps for Linux
If you like to play games on Linux with a gamepad instead of a typical keyboard and mouse input system, there are some useful apps for you. Many PC ga...
Instrumente utile pentru jucătorii Linux
Dacă vă place să jucați jocuri pe Linux, este posibil să fi folosit aplicații și utilitare precum Wine, Lutris și OBS Studio pentru a îmbunătăți exper...
Jocuri HD remasterizate pentru Linux care nu au avut niciodată lansare Linux mai devreme
Mulți dezvoltatori și editori de jocuri vin cu remasterizarea HD a jocurilor vechi pentru a prelungi durata de viață a francizei, vă rog fanilor să so...