Piton

Vodič za Python Unittest

Vodič za Python Unittest

Jedinstveno testiranje metoda je ispitivanja koja se koristi u softverskom inženjerstvu za pojedine jedinice bilo kojeg koda. Korisnici mogu provesti pojedinačne testove kako bi utvrdili status izvora i koliko je kod pogodan za upotrebu. Na ovaj način korisnici mogu testirati kvalitetu koda.

Testiranje se vrši nakon završetka procesa razvoja. Korisnici također mogu započeti testiranje kada se testna skripta treba provjeriti na temelju kriterija testiranja. Od programera se očekuje da napišu ručne vrste izvornog koda. Općenito je ručno pisanje kodova za jedinstveno testiranje užurban zadatak, ali u Pythonu se to radi pomoću ugrađene funkcije koja se naziva unittest.

Unittest

Testiranje u Pythonu vrši unittest framework. Jedinstveno testiranje čini kôd sigurnim i jednostavnim za upotrebu u budućnosti. Korisnici obično ne mogu predvidjeti te slučajeve, ali ih mogu lako riješiti. Unittest može biti cijeli modul, određena funkcija i cijelo sučelje (klasa / modul).

Kako napisati jedinične testove za svoj kôd?

Da biste napisali jedinične testove za svoj kôd, uvijek započnite s najmanjom jedinicom koja se može testirati iz cijelog koda, a zatim pređite na druge jedinice. Na taj ćete način provjeriti kako najmanja odabrana jedinica djeluje kako bi se stvorio cijeli test jedinice.

Jedinstveni okvir za testiranje Pythona formiran je uzimajući u obzir Java-ov Junit. Ima iste te iste značajke kao što se jedinstveno testiranje vrši na drugim različitim vrstama jezika. Okvir jedinstvenog testiranja u Pythonu pomaže u automatizacijskom testiranju, postavljanju dijeljenja, objedinjavanju mnogih testova u jedan veliki skup i neovisnim testovima

Primjeri:

Sada, u primjeru, provjeravamo kôd kako bismo pronašli zbroj u Python kodu pomoću funkcije sum (). Odgovor na ovaj zbroj mora biti 12, što je točno.

>>> potvrditi zbroj ([2, 4, 6]) == 12, "Treba biti jednako 12"

S druge strane, ako pokušamo napisati pogrešnu izlaznu vrijednost, a zbroj () je netočan, rezultati neće uspjeti. Vratit će AssertionError. Izlaz koji smo naveli pogrešan je i iznosi 12, a stvarni izlaz mora biti 6, stoga je vratio ovu pogrešku.

>>> potvrditi zbroj ([2, 2, 2]) == 12, "Treba biti jednako 12"

Sada ćemo umjesto testiranja na REPL-u staviti novu Python datoteku i imenovati je test_sum.py

>> def testValue_sum ():
potvrditi zbroj ([2, 4, 6]) == 12, "Treba biti jednako 12"
ako je __name__ == "__glavno__":
testValue_sum ()
print ("Sve je ispravno proslijeđeno")

Nakon pisanja testnog slučaja možete pristupiti direktoriju koji sadrži test_sum.py datoteku, a zatim upišite:

$ python test_sum.py

Izlaz:

Izlazna vrijednost, kada je slična prikazanoj, odobrit će točnu vrijednost.

Stvorimo novu datoteku za .py za testiranje zbroja. Primjer prikazan u kodu i može se koristiti kao uzorak kopiranjem:

def testValue_sum ():
potvrditi zbroj ([2, 4, 6]) == 12, "Treba biti jednako 12"
def testValue_sum_tuple ():
potvrditi zbroj ((1, 1, 1)) == 6, "Treba biti jednako 6"
ako je __name__ == "__glavno__":
testValue_sum ()
testValue_sum_tuple ()
print ("Sve je ispravno proslijeđeno")

Ovaj put ćemo opet imenovati datoteku test_sum.py 

Prvi blok koda je točan, dok je drugi blok koda pogrešan i ima pogrešku, tako da će naš izlaz vratiti isti.

Sada ćemo se vratiti u direktorij projekta, gdje smo spremili .py datoteka, a zatim testirajte datoteku pomoću sljedeće naredbe:

$ python test_sum.py

Izlaz:

Ovaj put, budući da je ulazni kod imao pogrešku, očekuje se da će odgovoriti na pogrešku Assertion.

Primjer upotrebe unittest:

Zahtjevi Unittesta su da korisnici mogu svoje testove stavljati u klase kao različite metode, korisnici mogu koristiti niz metoda tvrdnji, a klasa TestCase može se koristiti umjesto izjave assert.

Korisnici mogu pretvoriti primjer raspravljen u prethodnoj polovici u unittest test slučaj.

Prvo, uvezite unitest knjižnicu. Dalje, morate stvoriti TestSum iz različitih klasa.

Izradite novu datoteku za kôd o kojem se govori u nastavku:

import unittest
klasa TestSum (unittest.TestCase):
def testValue_sum (self):
sebe.assertEqual (zbroj ([2, 4, 6]), 12, "Treba biti jednako 12")
def testValue_sum_tuple (self):
sebe.assertEqual (sum ((1, 1, 1)), 6, "Treba biti jednako 6")
ako je __name__ == '__glavno__':
unittest.glavni()

Nakon što izvršite ovu naredbu, na izlazu je točka. To znači uspjeh, a F neuspjeh.

Dakle, imamo uspjeha, a drugi je neuspjeh.

Izlaz:

Pisanje prvog testa:

Stvorite novu mapu projekta, a zatim stvorite novu mapu, nazvat ćemo je sum_file. Unutar nje stvorite datoteku i nazovite je, __init__.py.  Napravite mapu projekta poput ove:

projekt/

└── datoteka_suma /
└── __init__.py

Tada morate otvoriti my_sum / __ init__.py i stvoriti novu funkciju sum (). Bit će moguće izraditi (popis, skup ili skup) za dodavanje mnogih vrijednosti:

def zbroj (arg):
total_ValueCalculated = 0
za val u arg:
total_ValueCalculated + = val
povratak total_ValueCalculated

Dalje, trebate stvoriti test datoteka. Započnite s pisanjem testova i stvorite test datoteku pod nazivom testFile.py. Da biste uvezli aplikaciju i ona mora biti testirana, stavite datoteku testFile.py iznad vaše mape paketa. Slijedi cjelokupni izgled vašeg direktorija:

projekt/

├── datoteka_suma /
│ └── __in__.py
|
└── testFile.py

Kao što je ranije spomenuto za testiranje koda, u prozoru terminala / naredbenom retku možete upotrijebiti sljedeću naredbu:

$ python -m unittest test

Zaključak

Članak govori o procesu jediničnog testiranja u Pythonu. Testiranje je jedna od korisnih značajki softverskog inženjerstva koja je sposobna podijeliti kodove na manje dijelove, a zatim ih isprobati jedan po jedan. Korisnici također mogu kompilirati cjelokupne testne uzorke / kodove jedinica u jednu veliku zbirku. Unittest je jedna funkcija koja se u Pythonu koristi za jednostavno korištenje testiranja.

HD Remastered igre za Linux koje ranije nisu imale Linux izdanje
Mnogi programeri i izdavači igara dolaze s HD remasterom starih igara kako bi produžili životni vijek franšize, molimo obožavatelje da zatraže kompati...
Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...
Kako prikazati brojač FPS-a u Linux igrama
Linux gaming dobio je velik poticaj kada je Valve najavio Linux podršku za Steam klijent i njihove igre 2012. godine. Od tada su mnoge AAA i indie igr...