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 -

Parameteriseret test i junit

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 til at oprette en parametriseret JUnit Test

Trin 2) Opret en parameteriseret testklasse

Trin til at oprette en parametriseret JUnit Test

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 til at oprette en parametriseret JUnit Test

Trin 4) Opret en statisk metode, der genererer og returnerer testdata.

Trin til at oprette en parametriseret JUnit Test

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

Trin til at oprette en parametriseret JUnit Test

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:

Trin til at oprette en parametriseret JUnit 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:

Trin til at oprette en parametriseret JUnit Test

Se resultatet på konsollen, som viser tilføjelse af to tal:-

JUnit Parameteriseret test

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