JUnit parametarski test s primjerom pomoću @Parameters

Sadržaj:

Anonim

Š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