JUnit Parameterized Test med eksempel ved bruk av @Parameters

Innholdsfortegnelse:

Anonim

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