Professional Documents
Culture Documents
Exception
F - fail
Unit testiranje
Unit testiranje
• Sada kad smo uvidili da postoji
greška, ostalo je samo da je
reši o. U ovom slučaju
dodaće o samo još jedan if u
definiciji funkcije za raču a je
prostog broja
Unit testiranje
• Primeri ajčešće korišće ih
assert metoda
• assertEqual() – proverava da
li je izlaz jednak sa
očekiva i rezultatom
• assertTrue() i assertFalse() –
proverava uslov
• assertRaises() – provera da li
određe i izuzetak iskače
Unit testiranje
• Pokretanje testova iz CLI (Command Line Interface)
• Unittest modul se ože koristiti iz komandne linije za pokretanje
testova iz modula, klasa ili čak pojedi ač ih testnih metoda:
Ne iskače izuzetak
za ove vrednosti
Unit testiranje
• Posmatrajmo sada
primer na klasi
Unit testiranje Stalno se ponavlja ovaj
kod u svakoj funkciji
Ne treba nikada
pretpostaviti da se
testovi izvršavaju
redom kroz skriptu
(zato testovi trebaju
da budu izolovani)
Unit testiranje
• Takođe pogodno bi imati metode koje će da se izvršavaju pre bilo kog
testa, pre ičega, i nakon svakog testiranja. Za to nam služe metode
setUpClass() i tearDownClass()
• setUpClass() - metoda klase koja se poziva pre svih testova u
pojedi ač oj klasi. setUpClass() se poziva u klasi kao jedini argument i
mora biti imat dekorator @classmethod
• tearDownClass() - metoda klase koja se poziva nakon svih testova u
pojedi ač oj klasi. tearDownClass() se poziva u klasi kao jedini
argument i mora biti imat dekorator @classmethod
Unit testiranje
Unit testiranje
• Moguće je i preskakanje
klase koristeći skip dekorator
Unit testiranje
• Grupisanje testova – klasa TestSuite
• Ova klasa predstavlja skup svih pojedi ač ih testnih slučajeva
(TestCase-ova) i testnih grupa (TestSuite-a). Klasa predstavlja interfejs
potreban testeru kako bi o ogućio da se pokrene kao bilo koji drugi
test slučaj. Pokretanje TestSuite instance je isto kao prolaz kroz tu
grupu (suite), i pokretanje svakog testa pojedi ač o
• Ako su testovi dati, mora biti o oguće o iteriranje kroz pojedi ač e
testne slučajeve ili druge grupe, a koji će biti korišće i za počet u
inicijalizaciju grupe (suite-a). Dodatne metode su o ez eđe e kako bi
kasnije bili u ogić osti da dodajemo testne slučajeve i grupe
Unit testiranje
• Objekti TestSuite klase po ašaju se kao TestCase objekti, osim što oni
zapravo ne sprovode test. Umesto toga, koriste se za grupisanje
testova u grupe, a koji trebaju biti pokretani zajedno. Neke od
dodatnih metoda za dodavanje testova:
• addTest (test)
• Dodaje TestCase ili TestSuite u suite (grupu)
• addTests (testovi)
• Dodaje sve testove iz TestCase-a i TestSuite instance u ovaj test suite
• Ovo je ekvivalentno iteriranju kroz testove, pozivajući addTest() za svaki
element
Unit testiranje
• run(rezultat)
• Pokretanje testova vezanih za ovu
grupu, prikupljanje rezultata u
objektu test result koji se prenosi
kao rezultat
Kreiranje instance
TestSuite i dodavanje
testova iz klasa
Suite se izvršava pozivanjem metode run() iz klase
TextTestRunner() (zato imamo njenu instancu runner)