Skapa JUnit Test Suite med exempel: @RunWith @SuiteClasses

Innehållsförteckning:

Anonim

I Junit tillåter testpaket oss att samla alla testfall från flera klasser på ett ställe och köra det tillsammans.

För att köra svitstestet måste du kommentera en klass med nedanstående kommentarer:

  1. @Runwith (Suite.class)
  2. @SuiteClasses (test1.class, test2.class ...) eller

    @ Suite.SuiteClasses ({test1.class, test2.class

    ...})

Med ovanstående anteckningar kommer alla testklasserna i sviten att köras en efter en.

Steg för att skapa Test Suite och Test Runner

Steg 1) Skapa en enkel testklass (t.ex. MyFirstClassTest) och lägg till en metod kommenterad med @test.

Steg 2) Skapa en annan testklass att lägga till (t.ex. MySecondClassTest) och skapa en metod som är antecknad med @test.

Steg 3) För att skapa en testSuite måste du först anteckna klassen med @RunWith (Suite.class) och @SuiteClasses (class1.class2

...).

Steg 4) Skapa en Test Runner-klass för att köra vår testsvit enligt nedan;

Kodförklaring:

  • Kodrad 8: Förklarar huvudmetoden för klassprovet som kommer att köra vårt JUnit-test.
  • Kodrad 9: Exekvera testfall med JunitCore.runclasses som tar testklassnamnet som en parameter (I exemplet ovan använder du TestSuiteExample.class som visas i steg 3).
  • Kodrad 11: Bearbetar resultatet med hjälp av för loop och utskrift av misslyckat resultat.
  • Kodrad 13: Skriva ut det lyckade resultatet.

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

Exempel på JUnit Test Suite

Tänk på ett mer komplext exempel

JunitTest.java

JunitTest.java är en enkel klass som antecknats med @RunWith och @Suite- anteckningar. Du kan lista ut antalet .klasser i sviten som parametrar enligt nedan:

paket guru99.junit;importera org.junit.runner.RunWith;importera org.junit.runners.Suite;@RunWith (Suite.class)@ Suite.SuiteClasses ({SuiteTest1.klass,SuiteTest2.class,})offentlig klass JunitTest {// Denna klass förblir tom, den används endast som innehavare för ovanstående kommentarer}

SuiteTest1.java

SuiteTest1.java är en testklass som har en testmetod för att skriva ut ett meddelande enligt nedan. Du kommer att använda den här klassen som en svit i ovan nämnda klass.

paket guru99.junit;importera statisk org.junit.Assert.assertEquals;importera org.junit.Test;offentlig klass SuiteTest1 {public Strängmeddelande = "Saurabh";JUnitMessage junitMessage = ny JUnitMessage (meddelande);@Test (förväntat = ArithmeticException.class)offentligt ogiltigt testJUnitMessage () {System.out.println ("Junit-meddelandet skrivs ut");junitMessage.printMessage ();}@Testaoffentligt ogiltigt testJUnitHiMessage () {meddelande = "Hej!" + meddelande;System.out.println ("Junit Hej meddelande skrivs ut");assertEquals (meddelande, junitMessage.printHiMessage ());System.out.println ("Suite Test 2 lyckas" + meddelande);}}

SuiteTest2.java

SuiteTest2.java är en annan testklass som liknar SuiteTest1.java som har en testmetod för att skriva ut ett meddelande enligt nedan. Du kommer att använda den här klassen som svit i JunitTest.java .

paket guru99.junit;importera org.junit.Assert;importera org.junit.Test;offentlig klass SuiteTest2 {@Testapublic void createAndSetName () {Sträng förväntad = "Y";String actual = "Y";Assert.assertEquals (förväntad, faktisk);System.out.println ("Suite Test 1 lyckas" + faktisk);}}

Produktion

Efter att ha kört JunitTest .java som innehåller en svit med test1.java och test2.java kommer du under utdata:

Sammanfattning

I den här handledningen har du lärt dig grunderna för testbälte och testsviter i detalj med ett exempel.

  • Test sele eller automatisering Testning är en programvara eller en samling programvara som gör det möjligt för en användare att testa data med flera ingångar och styra utförandet
  • Testselement möjliggör faktiskt ett testramverk som utför allt arbete med att utföra tester med hjälp av ett testbibliotek och generera en testrapport
  • I Junit tillåter testpaket oss att samla alla testfall i många klasser på ett ställe och köra det tillsammans.