JUnit Parametrirani test s primjerom pomoću @Parameters
Što je parametrizirani test u Junitu?
Parametrirani test je izvođenje istog testa iznova i iznova koristeći različite vrijednosti. Pomaže razvojnom programeru da uštedi vrijeme u izvođenju istog testa koji se razlikuje samo po svojim unosima i očekivanim rezultatima.
Pomoću parametariziranog testa može se postaviti testna metoda koja dohvaća podatke iz nekog izvora podataka.
Razmotrite jednostavan test zbrajanja različitih brojeva. Kod može izgledati ovako –
Gornji pristup dovodi do velike redundancije.
Potreban nam je jednostavan pristup i. Korištenjem parametriziranog testa možete jednostavno dodati metodu za unos 10 unosa podataka i vaš će se test automatski pokrenuti 10 puta.
Koraci za stvaranje parametriziranog JUnit test
Sljedeći kod prikazuje primjer za parametrizirani test. Testira metodu sum() klase Arithmetic:
Korak 1) Stvorite razred. U ovom primjeru ćemo unijeti dva broja koristeći metodu zbroja (int,int) koja će vratiti zbroj zadanih brojeva
Korak 2) Stvorite parametariziranu ispitnu klasu
Objašnjenje koda
- Redak koda 11: Označite svoju testnu klasu koristeći @runWith(Parameterized.class).
- Redak koda 13: Proglašavanje varijable 'firstNumber' privatnom i tipa int.
- Redak koda 14: Deklariranje varijable 'secondNumber' kao privatne i tipa kao int.
- Redak koda 15: Proglašavanje varijable 'expectedResult' kao privatne i tipa kao int.
- Redak koda 16: Proglašavanje varijable 'airthematic' kao privatne i tipa kao Airthematic.
@RunWith(naziv_klase.klasa): @RunWith anotacija se koristi za određivanje naziva njegove klase trkača. Ako ne navedemo nijednu vrstu kao parametar, vrijeme izvođenja će odabrati BlockJunit4ClassRunner prema zadanim postavkama.
Ova je klasa odgovorna za izvođenje testova s novom testnom instancom. Odgovoran je za pozivanje JUnit metode životnog ciklusa kao što su postavljanje (pridruženi resursi) i rastavljanje (oslobađanje resursa).
Da biste parametrirali, trebate komentirati pomoću @RunWith i proslijediti potrebnu .class za testiranje
Korak 3) Napravite konstruktor koji pohranjuje testne podatke. Pohranjuje 3 varijable
Korak 4) Stvorite statičku metodu koja generira i vraća testne podatke.
Redak koda 32,33: Stvaranje dvodimenzionalnog niza (pružanje ulaznih parametara za zbrajanje). Koristeći asList metodu pretvaramo podatke u tip List. Budući da je povratni tip unosa metode zbirka.
Redak koda 30: Korištenje @Parametri napomenu za stvaranje skupa ulaznih podataka za izvođenje našeg testa.
Statička metoda identificirana napomenom @Parameters vraća zbirku gdje će svaki unos u zbirci biti ulazni podaci za jednu iteraciju testa.
Razmotrite element
1,2,3 {}
Ovdje
prviBroj =1
drugiBroj=2
očekivani rezultat=3
Ovdje će svaki element niza biti proslijeđen konstruktoru, jedan po jedan dok se klasa instancira više puta.
Korak 5) Kompletan kod
Objašnjenje koda:
- Redak koda 25: Korištenje oznake @Before za postavljanje resursa (Airthematic.class ovdje). Napomena @Before ovdje se koristi za pokretanje prije svakog testa. Sadrži preduvjet testa.
- Redak koda 36: Korištenje oznake @Test za izradu našeg testa.
- Redak koda 39: Stvaranje iskaza tvrdnje za provjeru je li naš zbroj ekvivalentan onome što smo očekivali.
Korak 6) Napravite klasu pokretača testa za izvođenje parametriziranog testa:
Objašnjenje koda:
- Redak koda 8: Deklariranje glavne metode testa klase koji će pokrenuti naš JUnit Test.
- Redak koda 9: Izvršavajući testne slučajeve koristeći JunitCore.runclasses, uzet će naziv testne klase kao parametar (u našem primjeru koristimo Airthematic.class).
- Redak koda 11: Obrada rezultata korištenjem for petlje i ispis neuspješnog rezultata.
- Redak koda 13: Ispis uspješnog rezultata.
Izlaz:
Ovo je izlaz koji pokazuje uspješan test bez traga greške kao što je navedeno u nastavku:
Pogledajte rezultat na konzoli, koji pokazuje zbrajanje dva broja:-
rezime
Parametrirani test omogućuje programeru da uvijek iznova izvršava isti test koristeći različite vrijednosti.
Važne napomene koje treba koristiti tijekom parametrizacije
- @RunWith
- @Parametri