JUnit Parameterisert test med eksempel ved bruk av @Parameters
Hva er Parameterized Test in Junit?
Parameterisert test er å utføre den samme testen om og om igjen med forskjellige verdier. Det hjelper utvikleren å spare tid på å utføre samme test som bare skiller seg i input og forventede resultater.
Ved å bruke Parameterized test kan man sette opp en testmetode som henter data fra en eller annen datakilde.
Tenk på en enkel test for å summere forskjellige tall. Koden kan se slik ut -
Tilnærmingen ovenfor fører til mye redundans.
Vi trenger en enkel tilnærming og. Ved å bruke parameterisert test kan du bare legge til en metode for å legge inn 10 datainndata og testen vil kjøre 10 ganger automatisk.
Trinn for å lage en parametrisert JUnit test
Følgende kode viser et eksempel for en parameterisert test. Den tester sum()-metoden til den aritmetiske klassen:
Trinn 1) Lag en klasse. I dette eksemplet skal vi legge inn to tall ved å bruke sum (int,int) metode som vil returnere summen av gitte tall
Trinn 2) Lag en parameterisert testklasse
Kode Forklaring
- Kodelinje 11: Annoter testklassen din med @runWith(Parameterized.class).
- Kodelinje 13: Erklærer variabelen 'firstNumber' som privat og skriv inn som int.
- Kodelinje 14: Erklærer variabelen 'secondNumber'som privat og skriv inn som int.
- Kodelinje 15: Erklærer variabelen 'expectedResult'som privat og skriv inn som int.
- Kodelinje 16: Erklærer variabelen 'airthematic' som privat og type som Airthematic.
@RunWith(klasse_navn.klasse): @RunWith merknad brukes til å spesifisere løperklassens navn. Hvis vi ikke spesifiserer noen type som en parameter, vil kjøretiden velge BlockJunit4ClassRunner som standard.
Denne klassen er ansvarlig for at tester kjøres med en ny testinstans. Det er ansvarlig for å påkalle JUnit livssyklusmetoder som oppsett (tilknyttede ressurser) og nedbrytning (frigjøringsressurser).
For å parameterisere må du kommentere ved å bruke @RunWith og bestå den nødvendige .class for å bli testet
Trinn 3) Lag en konstruktør som lagrer testdataene. Den lagrer 3 variabler
Trinn 4) Lag en statisk metode som genererer og returnerer testdata.
Kodelinje 32,33: Opprette en todimensjonal matrise (gir inndataparametere for tillegg). Ved å bruke asList-metoden konverterer vi dataene til en listetype. Siden er returtypen for metodeinndata innsamling.
Kodelinje 30: Ved hjelp av @Parametere merknad for å 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 én iterasjon av testen.
Tenk på elementet
1,2,3 {}
Her
førsteTall =1
secondNumber=2
forventetResultat=3
Her vil hvert array-element bli sendt til konstruktøren, ett om gangen ettersom klassen instansieres flere ganger.
Trinn 5) Den komplette koden
Kodeforklaring:
- Kodelinje 25: Bruke @Before annotering for å sette opp ressursene (Airthematic.class her). @Before-kommentaren brukes her for å kjøre før hvert testtilfelle. Den inneholder forutsetning for testen.
- Kodelinje 36: Bruke @Test-kommentar for å lage testen vår.
- Kodelinje 39: Lage en påstandserklæring for å sjekke om summen vår tilsvarer det vi forventet.
Trinn 6) Opprett en testløperklasse for å kjøre parameterisert test:
Kodeforklaring:
- Kodelinje 8: Erklærer hovedmetoden for klassetesten som vil kjøre vår JUnit test.
- Kodelinje 9: Ved å utføre testtilfeller ved å bruke JunitCore.runclasses, vil den ta testklassens navn som en parameter (I vårt eksempel bruker vi Airthematic.class).
- Kodelinje 11: Behandler resultatet med for loop og skriver ut mislykket resultat.
- Kodelinje 13: Skriver ut det vellykkede resultatet.
Utgang:
Her er utgangen som viser vellykket test uten feilspor som gitt nedenfor:
Se resultatet på konsollen, som viser tillegg av to tall:-
Sammendrag
Parameterisert test gjør det mulig for utviklere å utføre den samme testen om og om igjen med forskjellige verdier.
Viktige merknader som skal brukes under parameterisering
- @RunWith
- @Parametere