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:

  1. @Runwith(Suite.class)
  2. @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 for รฅ lage Test Suite og Test Runner

Trinn 2) Opprett en annen testklasse for รฅ legge til (f.eks. MySecondClassTest) og lag en metode som er kommentert med @test.

Trinn for รฅ lage Test Suite og Test Runner

Trinn 3) For รฅ lage en testSuite mรฅ du fรธrst kommentere klassen med @RunWith(Suite.class) og @SuiteClasses(class1.class2โ€ฆ..).

Trinn for รฅ lage Test Suite og Test Runner

Trinn 4) Opprett en Test Runner-klasse for รฅ kjรธre testpakken vรฅr som gitt nedenfor;

Trinn for รฅ lage Test Suite og Test Runner

Code Forklaring:

  • Code Linje 8: Erklรฆrer hovedmetoden for klassetesten som vil kjรธre vรฅr JUnit test.
  • Code Linje 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).
  • Code Linje 11: Behandler resultatet med for loop og skriver ut mislykket resultat.
  • Code Linje 13: Skriver ut det vellykkede resultatet.

Utgang: Her er resultatet som viser vellykket test uten feil trace som gitt nedenfor:

Trinn for รฅ lage Test Suite og Test Runner

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:

SuiteTest2.Java Produksjon

SuiteTest2.Java Produksjon

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.

Oppsummer dette innlegget med: