JUnit Parameteriseret test med eksempel ved hjælp af @Parameters
Hvad er Parameterized Test in Junit?
Parameteriseret test er at udføre den samme test igen og igen med forskellige værdier. Det hjælper udvikleren med at spare tid ved at udføre samme test, som kun adskiller sig i deres input og forventede resultater.
Ved hjælp af Parameterized test kan man opsætte en testmetode, der henter data fra en eller anden datakilde.
Overvej en simpel test for at summere forskellige tal. Koden kan se sådan ud -
Fremgangsmåden ovenfor fører til megen redundans.
Vi har brug for en enkel tilgang og. Ved at bruge parameteriseret test kan du blot tilføje en metode til at indtaste 10 datainput, og din test vil køre 10 gange automatisk.
Trin til at oprette en parametriseret JUnit prøve
Følgende kode viser et eksempel på en parameteriseret test. Den tester sum() metoden for den aritmetiske klasse:
Trin 1) Opret en klasse. I dette eksempel skal vi indtaste to tal ved at bruge sum (int,int) metode, som vil returnere summen af givne tal
Trin 2) Opret en parameteriseret testklasse
Kode Forklaring
- Kodelinje 11: Annoter din testklasse ved hjælp af @runWith(Parameterized.class).
- Kodelinje 13: Erklærer variablen 'firstNumber' som privat og skriv som int.
- Kodelinje 14: Erklærer variablen 'secondNumber'som privat og skriv som int.
- Kodelinje 15: Erklærer variablen 'expectedResult'som privat og skriv som int.
- Kodelinje 16: Erklærer variablen 'airthematic' som privat og type som Airthematic.
@RunWith(klasse_navn.klasse): @RunWith annotation bruges til at angive dens løberklassenavn. Hvis vi ikke angiver nogen type som parameter, vil runtime vælge BlockJunit4ClassRunner som standard.
Denne klasse er ansvarlig for, at tests kører med en ny testinstans. Det er ansvarligt for at påberåbe sig JUnit livscyklusmetoder såsom opsætning (tilknyttede ressourcer) og teardown (frigivelsesressourcer).
For at parametrere skal du annotere ved hjælp af @RunWith og bestå den nødvendige .class for at blive testet
Trin 3) Opret en konstruktør, der gemmer testdataene. Den gemmer 3 variabler
Trin 4) Opret en statisk metode, der genererer og returnerer testdata.
Kodelinje 32,33: Oprettelse af et todimensionelt array (leverer inputparametre til addition). Ved at bruge asList-metoden konverterer vi dataene til en listetype. Da returneringstypen for metodeinput er indsamling.
Kodelinje 30: Ved brug af @Parametre annotation for at oprette et sæt inputdata til at køre vores test.
Den statiske metode identificeret af @Parameters-annotationen returnerer en samling, hvor hver indgang i samlingen vil være inputdata for én iteration af testen.
Overvej elementet
1,2,3 {}
Her
førstetal =1
andetNumber=2
forventet Resultat=3
Her vil hvert array-element blive videregivet til konstruktøren, et ad gangen, da klassen instansieres flere gange.
Trin 5) Den komplette kode
Kodeforklaring:
- Kodelinje 25: Brug @Before annotation til at konfigurere ressourcerne (Airthematic.class her). @Before-annotationen bruges her til at køre før hver testcase. Den indeholder prøvens forudsætning.
- Kodelinje 36: Brug @Test annotation til at oprette vores test.
- Kodelinje 39: Oprettelse af en påstandserklæring for at kontrollere, om vores sum svarer til, hvad vi forventede.
Trin 6) Opret en testløberklasse for at køre parameteriseret test:
Kodeforklaring:
- Kodelinje 8: Erklærer hovedmetoden for klassetesten, som vil køre vores JUnit test.
- Kodelinje 9: Ved at udføre testcases ved hjælp af JunitCore.runclasses, vil det tage testklassens navn som en parameter (I vores eksempel bruger vi Airthematic.class).
- Kodelinje 11: Behandling af resultatet med for loop og udskrivning af mislykket resultat.
- Kodelinje 13: Udskriver det vellykkede resultat.
Output:
Her er outputtet, der viser vellykket test uden fejlspor som angivet nedenfor:
Se resultatet på konsollen, som viser tilføjelse af to tal:-
Resumé
Parameteriseret test gør det muligt for udvikleren at udføre den samme test igen og igen ved hjælp af forskellige værdier.
Vigtige anmærkninger, der skal bruges under parametrering
- @RunWith
- @Parametre