Hva er Parameterized Test i Junit?
Parameterisert test er å utføre den samme testen om og om igjen ved hjelp av forskjellige verdier. Det hjelper utvikleren å spare tid på å utføre samme test, som bare er forskjellig i deres innganger og forventede resultater.
Ved å bruke Parameterized test kan man sette opp en testmetode som henter data fra noen datakilde.
Vurder en enkel test for å oppsummere forskjellige tall. Koden kan se ut -
Tilnærmingen ovenfor fører til mye redundans.
Vi trenger en enkel tilnærming og. Ved hjelp av parameterisert test kan du bare legge til en metode for å legge inn 10 datainnganger, og testen din vil kjøre 10 ganger automatisk.
Fremgangsmåte for å lage en parameterisert JUnit-test
Følgende kode viser et eksempel på en parametrisert test. Den tester sum () -metoden til aritmetikklassen:
Trinn 1) Opprett en klasse. I dette eksemplet skal vi legge inn to tall ved å bruke sum (int, int) -metoden som vil returnere summen av gitte tall
Trinn 2) Opprett en parameterisert testklasse
Kode Forklaring
- Kodelinje 11: Kommenter testklassen din ved hjelp av @runWith (Parameterized.class).
- Kodelinje 13: Deklarere variabelen 'firstNumber' som privat og skriv som int.
- Kodelinje 14: Deklarere variabelen 'secondNumber' som privat og skriv som int.
- Kodelinje 15: Deklarere variabelen 'forventet resultat' som privat og skriv som int.
- Kodelinje 16: Deklarere variabelen 'airthematic' som privat og skriv som Airthematic.
@RunWith (class_name.class): @RunWith- kommentar brukes til å spesifisere navnet på løperklassen . Hvis vi ikke spesifiserer noen type som parameter, vil kjøretiden som standard velge BlockJunit4ClassRunner .
Denne klassen er ansvarlig for tester som skal kjøres med en ny testinstans. Den er ansvarlig for å påkalle JUnit livssyklusmetoder som oppsett (tilknyttede ressurser) og nedbrytning (frigjør ressurser).
For å parameterisere må du kommentere ved hjelp av @RunWith og passere nødvendig .klasse som skal testes
Trinn 3) Opprett en konstruktør som lagrer testdataene. Den lagrer 3 variabler
Trinn 4) Opprett en statisk metode som genererer og returnerer testdata.
Kodelinje 32,33: Opprette en todimensjonal matrise (som gir inngangsparametere for tillegg). Ved hjelp av asList-metoden konverterer vi dataene til en List-type. Siden er returtypen for metodeinndata innsamling.
Kodelinje 30: Bruk @Parameters- merknad til å lage et sett med inndata for å kjøre testen vår.
Den statiske metoden identifisert av @Parameters-kommentaren returnerer en samling der hver oppføring i samlingen vil være inngangsdata for en iterasjon av testen.
Tenk på de elemenente
{1,2,3}
Her
firstNumber = 1
secondNumber = 2
forventet resultat = 3
Her vil hvert matriseelement bli sendt til konstruktøren, en om gangen når klassen instanseres flere ganger.
Trinn 5) Den komplette koden
Kode Forklaring:
- Kodelinje 25: Bruke @For kommentar til å sette opp ressursene (Airthematic.class her). @Føres-merknaden brukes her for å kjøre før hver testtilfelle. Den inneholder forutsetning for testen.
- Kodelinje 36: Bruk @Test-kommentar til å lage testen vår.
- Kodelinje 39: Opprette en uttalelse for å sjekke om summen vår tilsvarer det vi forventet.
Trinn 6) Opprett en testløperklasse for å kjøre parameterisert test:
Kode Forklaring:
- Kodelinje 8: Erklærer hovedmetoden for klassetesten som kjører vår JUnit-test.
- Kodelinje 9: Utføring av testtilfeller ved bruk av JunitCore.runclasses, det tar testklassenavnet som en parameter (I vårt eksempel bruker vi Airthematic.class).
- Kodelinje 11: Behandler resultatet ved hjelp av for loop og skriver ut mislykket resultat.
- Kodelinje 13: Skrive ut det vellykkede resultatet.
Produksjon:
Her er utgangen som viser vellykket test uten feilsporing som gitt nedenfor:
Se resultatet på konsollen, som viser tillegg av to tall: -
Sammendrag :
Parametrert test gjør at utvikleren kan utføre den samme testen om og om igjen ved hjelp av forskjellige verdier.
Viktige merknader som skal brukes under parameterisering
- @RunWith
- @Parametre