Opprett JUnit Test Suite med eksempel: @RunWith @SuiteClasses
I Junit lar testpakken oss samle alle testtilfeller fra flere klasser på ett sted og kjøre det sammen.
For å kjøre suitetesten, må du kommentere en klasse ved å bruke merknadene nedenfor:
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……) eller@Suite.SuiteClasses ({test1.class, test2.class……})
Med merknadene ovenfor vil alle testklassene i suiten begynne å kjøre en etter en.
Trinn for å lage Test Suite og Test Runner
Trinn 1) Lag en enkel testklasse (f.eks. MyFirstClassTest) og legg til en metode merket med @test.
Trinn 2) Opprett en annen testklasse for å legge til (f.eks. MySecondClassTest) og lag en metode som er kommentert med @test.
Trinn 3) For å lage en testSuite må du først kommentere klassen med @RunWith(Suite.class) og @SuiteClasses(class1.class2…..).
Trinn 4) Opprett en Test Runner-klasse for å kjøre testpakken vår som gitt nedenfor;
Kodeforklaring:
- Kodelinje 8: Erklærer hovedmetoden for klassetesten som vil kjøre vår JUnit test.
- Kodelinje 9: Utføre testtilfeller ved å bruke JunitCore.runclasses som tar testklassenavnet som en parameter (I eksemplet ovenfor bruker du TestSuiteExample.class vist i trinn 3).
- Kodelinje 11: Behandler resultatet med for loop og skriver ut mislykket resultat.
- Kodelinje 13: Skriver ut det vellykkede resultatet.
Utgang: Her er utgangen som viser vellykket test uten feilspor som gitt nedenfor:
JUnit Eksempel på testsuite
Tenk på et mer komplekst eksempel
JunitTest.java
JunitTest.java er en enkel klasse merket med @RunWith og @Suite merknader. Du kan liste opp antall .classes i suiten som parametere som gitt nedenfor:
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
SuiteTest1.java
SuiteTest1.java er en testklasse som har en testmetode for å skrive ut en melding som gitt nedenfor. Du vil bruke denne klassen som en suite i ovennevnte klasse.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { public String message = "Saurabh"; JUnitMessage junitMessage = new JUnitMessage(message); @Test(expected = ArithmeticException.class) public void testJUnitMessage() { System.out.println("Junit Message is printing "); junitMessage.printMessage(); } @Test public void testJUnitHiMessage() { message = "Hi!" + message; System.out.println("Junit Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
SuiteTest2.java
SuiteTest2.java er en annen testklasse som ligner på SuiteTest1.java å ha en testmetode for å skrive ut en melding som gitt nedenfor. Du vil bruke denne klassen som suite in JunitTest.java.
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
Produksjon
Etter henrettelse JunitTest.java som inneholder en suite med test1.java og test2.java, vil du få utdata nedenfor:
Sammendrag
I denne opplæringen har du lært grunnleggende om testsele og testsuiter i detaljer med et eksempel.
- Test sele eller automatisering Testing er en programvare eller en samling av programvare, som lar en bruker teste data med flere innganger og kontrollere utførelsen
- Testsele muliggjør faktisk et testrammeverk som gjør alt arbeidet med å utføre tester ved hjelp av et testbibliotek og generere en testrapport
- I Junit lar testpakken oss samle alle testtilfeller av mange klasser på ett sted og kjøre det sammen.