Lag JUnit Test Suite med eksempel: @RunWith @SuiteClasses

Innholdsfortegnelse:

Anonim

I Junit lar testpakken oss samle alle testtilfeller fra flere klasser på ett sted og kjøre det sammen.

For å kjøre suite-testen, må du kommentere en klasse ved hjelp av kommentarene nedenfor:

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

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

    ...})

Med kommentarene ovenfor begynner alle testklassene i suiten å kjøre en etter en.

Fremgangsmåte for å lage Test Suite og Test Runner

Trinn 1) Opprett en enkel testklasse (f.eks. MyFirstClassTest) og legg til en metode som er merket med @test.

Trinn 2) Opprett en annen testklasse du vil legge til (f.eks. MySecondClassTest) og opprett en metode som er merket 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;

Kode Forklaring:

  • Kodelinje 8: Erklærer hovedmetoden for klassetesten som kjører vår JUnit-test.
  • Kodelinje 9: Utføre testtilfeller ved bruk av JunitCore.runclasses som tar testklassenavnet som en parameter (I eksemplet ovenfor bruker du TestSuiteExample.class vist i trinn 3).
  • Kodelinje 11: Behandler resultatet ved hjelp av for loop og skriver ut mislykket resultat.
  • Kodelinje 13: Skrive ut det vellykkede resultatet.

Utgang: Her er utgangen som viser vellykket test uten feilsporing som angitt nedenfor:

Eksempel på JUnit Test Suite

Tenk på et mer komplekst eksempel

JunitTest.java

JunitTest.java er en enkel klasse kommentert med @RunWith og @Suite- merknader. Du kan liste ut antall .klasser i suiten som parametere som gitt nedenfor:

pakke guru99.junit;importer org.junit.runner.RunWith;importer org.junit.runners.Suite;@RunWith (Suite.class)@ Suite.SuiteClasses ({SuiteTest1.klasse,SuiteTest2.class,})offentlig klasse JunitTest {// Denne klassen forblir tom, den brukes kun som holder for kommentarene ovenfor}

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.

pakke guru99.junit;importer statisk org.junit.Assert.assertEquals;import org.junit.Test;offentlig klasse SuiteTest1 {offentlig strengmelding = "Saurabh";JUnitMessage junitMessage = ny JUnitMessage (melding);@Test (forventet = ArithmeticException.class)offentlig ugyldig testJUnitMessage () {System.out.println ("Junit Message skrives ut");junitMessage.printMessage ();}@Testoffentlig ugyldig testJUnitHiMessage () {message = "Hei!" + melding;System.out.println ("Junit Hi Message skrives ut");assertEquals (melding, junitMessage.printHiMessage ());System.out.println ("Suite Test 2 er vellykket" + melding);}}

SuiteTest2.java

SuiteTest2.java er en annen testklasse som ligner på SuiteTest1.java som har en testmetode for å skrive ut en melding som gitt nedenfor. Du vil bruke denne klassen som suite i JunitTest.java .

pakke guru99.junit;import org.junit.Assert;import org.junit.Test;offentlig klasse SuiteTest2 {@Testoffentlig ugyldig createAndSetName () {Streng forventet = "Y";String faktisk = "Y";Assert.assertEquals (forventet, faktisk);System.out.println ("Suite Test 1 er vellykket" + faktisk);}}

Produksjon

Etter å ha kjørt JunitTest .java som inneholder en suite som har test1.java og test2.java , vil du komme under output:

Sammendrag

I denne opplæringen har du lært grunnleggende om testseler og testpakker i detaljer med et eksempel.

  • Test sele eller automatisering Testing er en programvare eller en samling programvare, som gjør det mulig for en bruker å teste data med flere innganger og kontrollere utførelsen
  • Test sele 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 fra mange klasser på ett sted og kjøre det sammen.