Vodič za PyUnit: Python Okvir za testiranje jedinice (s primjerom)

Što je testiranje jedinica?

Ispitivanje jedinice in Python radi se za identifikaciju grešaka u ranoj fazi razvoja aplikacije kada se greške manje ponavljaju i jeftinije je popraviti.

Jedinični test je skriptirani test razine koda dizajniran u Python za provjeru male "jedinice" funkcionalnosti. Unit test je objektno orijentiran okvir koji se temelji na testnim postavkama.

Python Tehnike jediničnog testiranja

Python Jedinično testiranje uglavnom uključuje testiranje određenog modula bez pristupa bilo kojem ovisnom kodu. Razvojni programeri mogu koristiti tehnike poput završetaka i ismijavanja za razdvajanje koda u "jedinice" i pokretanje testiranja na razini jedinice na pojedinačnim dijelovima.

  • Razvoj vođen testiranjem TDD: Jedinično testiranje treba provesti zajedno s Python, a za to programeri koriste Test-Driven Development metodu. U TDD metodi prvo dizajnirate Python Unit testovi i tek onda nastavljate s pisanjem koda koji će implementirati ovu značajku.
  • Zaglavci i rugalice: To su dvije glavne tehnike koje simuliraju lažne metode koje se testiraju. A iskrčiti koristi se za ispunjavanje nekih ovisnosti potrebnih za ispravno izvođenje testa jedinice. A ismijavati s druge strane je lažni objekt koji pokreće testove gdje stavljamo assert.

    Namjere obje metode su iste za eliminiranje testiranja svih ovisnosti klase ili funkcije.

Python Okvir za jedinično testiranje

Kako biste olakšali proces testiranja jedinica i poboljšali kvalitetu vašeg projekta, preporučuje se Python Okvir za jedinično testiranje. Okvir za testiranje jedinica uključuje

Python Tehnike jediničnog testiranja

  • PyUnit: PyUnit podržava učvršćenja, testne slučajeve, testne pakete i test runner za automatizirano testiranje koda. U PyUnitu možete organizirati testne slučajeve u pakete s istim postavkama
  • Nos: Dodaci ugrađeni u Nose pomažu vam u hvatanju izlaza, pokrivanju koda, testovima dokumenata itd. Sintaksa Nosea prilično je jednostavnija i smanjuje prepreke pri pisanju testova. Proteže se Python unittest za lakše testiranje.
  • Doctest : Skripta za testiranje Doctest ide u docstring s malom funkcijom na dnu datoteke. Doctest vam omogućuje da testirate svoj kod pokretanjem primjera uključenih u dokumentaciju i provjerom da li su vratili očekivane rezultate. Slučaj upotrebe doctesta je manje detaljan i ne hvata posebne slučajeve. Oni su korisni kao izražajna dokumentacija glavnog slučaja uporabe modula i njegovih komponenti.

Jedinično testiranje s PyUnitom

Pyunit je a Python luka JUnit. Kao dio Pyunita, u modulu unittest postoji pet ključnih klasa.

Jedinično testiranje s PyUnitom

  • Klasa TestCase: Klasa TestCase nosi testne rutine i isporučuje kuke za izradu svake rutine i čišćenje nakon toga
  • Klasa TestSuite: Služi kao spremnik za prikupljanje i može sadržavati višestruke objekte testcase i višestruke objekte testsuitesa
  • Klasa TestLoader: Ova klasa učitava testne slučajeve i pakete definirane lokalno ili iz vanjske datoteke. Emitira testni skup objekata koji posjeduju te pakete i slučajeve
  • Klasa TextTestRunner: Za izvođenje testova služi standardna platforma za izvođenje testova
  • Klasa TestResults: Nudi standardni spremnik za rezultate ispitivanja

Dizajniranje testnog slučaja za Python Testiranje pomoću PyUnita

Jedinični test daje osnovnu klasu, testni slučaj, koji se može koristiti za stvaranje novih testnih slučajeva. Za dizajniranje testnog slučaja korištena su tri skupa metoda

Dizajniranje testnog slučaja za Python

unittest.TestCase

setUp()
teardown()

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

id():string
shortDescription():string

U prvom su setu udice prije i poslije testa. Metoda setup() počinje prije svake testne rutine, teardown() nakon rutine.

Drugi skup metoda kontrolira izvođenje testa. Obje metode uzimaju niz poruke kao ulaz i obje poništavaju test koji je u tijeku. Ali metoda skiptest() prekida trenutni test dok ga metoda fail() u potpunosti ne uspijeva.

Posljednja ili treća metoda pomaže u određivanju testa. Metoda id() vraća niz koji se sastoji od naziva objekta testnog slučaja i testne rutine. A metoda kratkaDescription() vraća docstr komentar na početku svake testne rutine.

Prednosti korištenja Python Ispitivanje jedinice

  • Pomaže vam otkriti bugove rano u razvojnom ciklusu
  • Pomaže vam da napišete bolje programe
  • Lako se sinkronizira s drugim metodama i alatima za testiranje
  • Imat će mnogo manje grešaka
  • Lakše ga je modificirati u budućnosti s vrlo manje posljedica