Vad är parametrerat test i Junit?
Parameteriserat test är att utföra samma test om och om igen med hjälp av olika värden. Det hjälper utvecklare att spara tid vid utförande av samma test, som bara skiljer sig åt i deras ingångar 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.
Tänk på ett enkelt test för att summera olika siffror. Koden kan se ut -
Tillvägagångssättet ovan leder till mycket redundans.
Vi behöver ett enkelt tillvägagångssätt och. Med parametriserat 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 ett parametrerat JUnit-test
Följande kod visar ett exempel för ett parametrerat test. Det testar sum () -metoden i aritmetikklassen:
Steg 1) Skapa en klass. I det här exemplet ska vi mata in två nummer genom att använda sum (int, int) -metoden som returnerar summan av givna nummer
Steg 2) Skapa en parametrerad testklass
Kodförklaring
- Kodrad 11: Kommentera din testklass med @runWith (Parameterized.class).
- Kodrad 13: Förklara variabeln 'firstNumber' som privat och skriv som int.
- Kodrad 14: Förklara variabeln 'secondNumber' som privat och skriv som int.
- Kodrad 15: Förklarar variabeln 'expectResult' som privat och skriv som int.
- Kodrad 16: Deklarera variabeln 'airthematic' som privat och skriv som Airthematic.
@RunWith (class_name.class): @RunWith- kommentar används för att ange dess löparklassnamn. Om vi inte anger någon typ som parameter, kommer runtime att välja BlockJunit4ClassRunner som standard.
Den här klassen ansvarar för tester som körs med en ny testinstans. Det ansvarar för att åberopa JUnit-livscykelmetoder som installation (associerade resurser) och nedbrytning (frigör resurser).
För att parametrisera måste du kommentera med @RunWith och skicka den .klass som ska testas
Steg 3) Skapa en konstruktör som lagrar testdata. Den lagrar 3 variabler
Steg 4) Skapa en statisk metod som genererar och returnerar testdata.
Kodrad 32,33: Skapa en tvådimensionell matris (tillhandahålla inmatningsparametrar för tillägg). Med asList-metoden konverterar vi data till en listtyp. Sedan är returtypen för metodinmatning insamling.
Kodrad 30: Använd @Parameters- anteckningen för att skapa en uppsättning ingångsdata 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 ingångsdata för en iteration av testet.
Tänk på elemenent
{1,2,3}
Här
firstNumber = 1
secondNumber = 2
expectResult = 3
Här kommer varje matriselement att skickas till konstruktören, en i taget då klassen instanseras flera gånger.
Steg 5) Den fullständiga koden
Kodförklaring:
- Kodrad 25: Använda @Before-anteckningen för att ställa in resurserna (Airthematic.class här). Kommentaren @Before används här för att köras före varje testfall. Den innehåller testförutsättningen.
- Kodrad 36: Använd @Test-kommentar för att skapa vårt test.
- Kodrad 39: Skapa ett påstående 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 parametrerat test:
Kodförklaring:
- Kodrad 8: Förklarar huvudmetoden för klassprovet som kommer att köra vårt JUnit-test.
- Kodrad 9: Exekverar testfall med JunitCore.runclasses, det tar testklassnamnet som en parameter (I vårt exempel använder vi Airthematic.class).
- Kodrad 11: Bearbetar resultatet med hjälp av för loop och utskrift av misslyckat resultat.
- Kodrad 13: Skriva ut det lyckade resultatet.
Produktion:
Här är utgången som visar framgångsrikt test utan felsökning enligt nedan:
Se resultatet på konsolen, som visar tillägg av två nummer: -
Sammanfattning :
Parameteriserat test gör det möjligt för utvecklare att utföra samma test om och om igen med hjälp av olika värden.
Viktiga kommentarer som ska användas under parametreringen
- @Spring med
- @Parameters