Što je parametarski test u Junitu?
Parametrizirano ispitivanje je izvoditi isti test iznova i iznova koristeći različite vrijednosti. Pomaže programeru da uštedi vrijeme u izvršavanju istog testa koji se razlikuje samo po unosima i očekivanim rezultatima.
Korištenjem parametriziranog testa može se postaviti metoda ispitivanja koja dohvaća podatke iz nekog izvora podataka.
Razmotrite jednostavan test za zbrajanje različitih brojeva. Kôd može izgledati -
Gore navedeni pristup dovodi do puno suvišnosti.
Trebamo jednostavan pristup i. Korištenjem parametriziranog testa možete samo dodati metodu za unos 10 unosa podataka i test će se automatski pokrenuti 10 puta.
Koraci za stvaranje parametarskog JUnit testa
Sljedeći kod prikazuje primjer za parametarski test. Testira se metoda sum () klase Aritmetika:
Korak 1) Stvorite razred. U ovom ćemo primjeru unijeti dva broja uporabom metode sum (int, int) koja će vratiti zbroj zadanih brojeva
Korak 2) Stvorite parametarsku klasu testa
Objašnjenje koda
- Linija koda 11: Označite testnu klasu pomoću @runWith (Parameterized.class).
- Redak koda 13: Proglašavanje varijable 'firstNumber' privatnom, a tipa int.
- Redak 14: Proglašavanje varijable 'secondNumber' privatnom i upišite kao int.
- Redak koda 15: Proglašavanje varijable 'očekivani rezultat' privatnom i upišite kao int.
- Kodni redak 16: Proglašavanje varijable 'airthematic' privatnom i tipa Airthematicom.
@RunWith (ime_klase.klasa): Oznaka @RunWith koristi se za specificiranje naziva klase pokretača . Ako kao parametar ne navedemo nijednu vrstu, runtime će prema zadanim postavkama odabrati BlockJunit4ClassRunner .
Ova je klasa odgovorna za pokretanje testova s novom testnom instancom. Odgovorna je za pozivanje metoda životnog ciklusa JUnit, poput postavljanja (pridruženi resursi) i uklanjanja (resursi izdavanja).
Da biste parameterizirali, morate napomenuti pomoću @RunWith i proslijediti potreban .class koji treba testirati
Korak 3) Izradite konstruktor koji pohranjuje test podatke. Pohranjuje 3 varijable
Korak 4) Stvorite statičku metodu koja generira i vraća test podatke.
Linija koda 32,33: Stvaranje dvodimenzionalnog niza (pružanje ulaznih parametara za dodavanje). Pomoću metode asList podatke pretvaramo u vrstu Popisa. Budući da je povratna vrsta unosa metode prikupljanje.
Redak koda 30: Korištenje oznake @Parameters za stvaranje skupa ulaznih podataka za pokretanje našeg testa.
Statička metoda identificirana oznakom @Parameters vraća Zbirku gdje će svaki unos u Zbirku biti ulazni podaci za jednu iteraciju testa.
Razmotrimo elemenent
{1,2,3}
Ovdje
firstNumber = 1
drugiBroj = 2
očekivani rezultat = 3
Ovdje će se svaki element polja proslijediti konstruktoru, jedan po jedan, jer se klasa instancira više puta.
Korak 5) Kompletni kod
Objašnjenje koda:
- Redak koda 25: Korištenje bilješke @Before za postavljanje resursa (Airthematic.class ovdje). Bilješka @Before ovdje se koristi za pokretanje prije svakog test slučaja. Sadrži preduvjet testa.
- Redak koda 36: Korištenje oznake @Test za izradu našeg testa.
- Redak koda 39: Stvaranje izjave za potvrdu kako bismo provjerili je li naš zbroj jednak onome što smo očekivali.
Korak 6) Stvorite klasu test trkača za pokretanje parametriziranog testa:
Objašnjenje koda:
- Redak koda 8: Deklariranje glavne metode testa klase koja će izvoditi naš JUnit test.
- Redak koda 9: Izvršavanje test slučajeva pomoću JunitCore.runclasses, kao parametar uzeti će naziv klase testa (u našem primjeru koristimo Airthematic.class).
- Linija 11: Obrada rezultata pomoću for for i ispis neuspjelog rezultata.
- Linija 13: Ispis uspješnog rezultata.
Izlaz:
Evo izlaza koji pokazuje uspješan test bez traga kvara kako je navedeno u nastavku:
Pogledajte rezultat na konzoli koja prikazuje zbrajanje dva broja: -
Sažetak :
Parametarski test omogućuje programeru da izvodi isti test uvijek iznova koristeći različite vrijednosti.
Važne napomene koje će se koristiti tijekom parametrizacije
- @RunWith
- @Parameters