JUnit Parameteriserat test med exempel med hjälp av @Parameters

Vad är Parameterized Test in Junit?

Parameteriserat test är att utföra samma test om och om igen med olika värden. Det hjälper utvecklare att spara tid på att köra samma test som bara skiljer sig i deras indata och förväntade resultat.

Med hjälp av Parameterized test kan man ställa in en testmetod som hämtar data från någon datakälla.

Överväg ett enkelt test för att summera olika tal. Koden kan se ut så här -

Parameteriserat test i junit

Tillvägagångssättet ovan leder till mycket redundans.

Vi behöver ett enkelt tillvägagångssätt och. Med hjälp av parameteriserat test kan du bara lägga till en metod för att mata in 10 dataingångar och ditt test kommer att köras 10 gånger automatiskt.

Steg för att skapa en parametriserad JUnit test

Följande kod visar ett exempel på ett parametriserat test. Den testar sum()-metoden för Arithmetic-klassen:

Steg 1) Skapa en klass. I det här exemplet ska vi mata in två tal genom att använda summan (int,int) metoden som returnerar summan av givna tal

Steg för att skapa en parametriserad JUnit Testa

Steg 2) Skapa en parametriserad testklass

Steg för att skapa en parametriserad JUnit Testa

Kodförklaring

  • Kodrad 11: Annotera din testklass med @runWith(Parameterized.class).
  • Kodrad 13: Deklarerar variabeln 'firstNumber' som privat och typ som int.
  • Kodrad 14: Deklarerar variabeln 'secondNumber'som privat och typ som int.
  • Kodrad 15: Deklarerar variabeln 'expectedResult'som privat och typ som int.
  • Kodrad 16: Deklarerar variabeln 'airthematic' som privat och typ som Airthematic.

@Spring med(klass_namn.klass): @Spring med anteckning används för att specificera dess löparklassnamn. Om vi ​​inte anger någon typ som parameter kommer körtiden att välja BlockJunit4ClassRunner som standard.

Den här klassen ansvarar för att tester körs med en ny testinstans. Den ansvarar för att åberopa JUnit livscykelmetoder som setup (associera resurser) och teardown (release resurser).

För att parametrisera måste du annotera med @RunWith och godkänna den .class som krävs för att testas

Steg 3) Skapa en konstruktor som lagrar testdata. Den lagrar 3 variabler

Steg för att skapa en parametriserad JUnit Testa

Steg 4) Skapa en statisk metod som genererar och returnerar testdata.

Steg för att skapa en parametriserad JUnit Testa

Kodrad 32,33: Skapa en tvådimensionell array (tillhandahåller indataparametrar för addition). Med asList-metoden konverterar vi data till en Listtyp. Eftersom returtypen för metodinmatning är samling.

Kodrad 30: Använda @Parametrar anteckning för att skapa en uppsättning indata för att köra vårt test.

Den statiska metoden som identifieras av @Parameters-anteckningen returnerar en samling där varje post i samlingen kommer att vara indata för en iteration av testet.

Tänk på beståndsdelen

1,2,3 {}

Här

förstaNumber =1

andraNumber=2

förväntat Resultat=3

Här kommer varje array-element att skickas till konstruktorn, ett i taget eftersom klassen instansieras flera gånger.

Steg 5) Den fullständiga koden

Steg för att skapa en parametriserad JUnit Testa

Kodförklaring:

  • Kodrad 25: Använda @Before-kommentaren för att ställa in resurserna (Airthematic.class här). @Before-anteckningen används här för att köras före varje testfall. Den innehåller förutsättning för testet.
  • Kodrad 36: Använder @Test-kommentaren för att skapa vårt test.
  • Kodrad 39: Skapa ett påstående uttalande för att kontrollera om vår summa motsvarar vad vi förväntade oss.

Steg 6) Skapa en testlöparklass för att köra parametriserat test:

Steg för att skapa en parametriserad JUnit Testa

Kodförklaring:

  • Kodrad 8: Deklarerar huvudmetoden för klasstestet som kommer att köra vår JUnit testet.
  • Kodrad 9: Om du kör testfall med JunitCore.runclasses kommer det att ta testklassens namn som en parameter (I vårt exempel använder vi Airthematic.class).
  • Kodrad 11: Bearbetar resultatet med för loop och skriver ut misslyckat resultat.
  • Kodrad 13: Skriver ut det lyckade resultatet.

Produktion:

Här är utgången som visar framgångsrikt test utan felspår enligt nedan:

Steg för att skapa en parametriserad JUnit Testa

Se resultatet på konsolen, som visar tillägg av två siffror:-

JUnit Parameteriserat test

Sammanfattning

Parameteriserat test gör det möjligt för utvecklare att utföra samma test om och om igen med olika värden.

Viktiga anteckningar som ska användas under parametrering

  • @Spring med
  • @Parametrar