creëren JUnit Testsuite met voorbeeld: @RunWith @SuiteClasses

In Junit kunt u met een testsuite alle testcases uit meerdere klassen op één plek samenvoegen en samen uitvoeren.

Om de suitetest uit te voeren, moet u een klasse annoteren met behulp van de onderstaande annotaties:

  1. @Runwith(Suite.class)
  2. @SuiteClasses(test1.class,test2.class……) of@Suite.SuiteClasses ({test1.class, test2.class……})

Met bovenstaande annotaties worden alle testklassen in de suite één voor één uitgevoerd.

Stappen om Test Suite en Test Runner te maken

Stap 1) Maak een eenvoudige testklasse (bijvoorbeeld MyFirstClassTest) en voeg een methode toe met de annotatie @test.

Stappen om Test Suite en Test Runner te maken

Stap 2) Maak nog een testklasse om toe te voegen (bijvoorbeeld MySecondClassTest) en maak een methode met de annotatie @test.

Stappen om Test Suite en Test Runner te maken

Stap 3) Om een ​​testSuite te maken, moet u eerst de klasse annoteren met @RunWith(Suite.class) en @SuiteClasses(class1.class2…..).

Stappen om Test Suite en Test Runner te maken

Stap 4) Creëer een Test Runner-klasse om onze testsuite uit te voeren, zoals hieronder aangegeven;

Stappen om Test Suite en Test Runner te maken

Code Verklaring:

  • Coderegel 8: Het declareren van de hoofdmethode van de klassentest die onze zal uitvoeren JUnit test.
  • Coderegel 9: Testcases uitvoeren met JunitCore.runclasses, waarbij de naam van de testklasse als parameter wordt gebruikt (in het bovenstaande voorbeeld gebruikt u TestSuiteExample.class, zoals weergegeven in stap 3).
  • Coderegel 11: Het verwerken van het resultaat met behulp van for-lus en het afdrukken van het resultaat is mislukt.
  • Coderegel 13: Het succesvolle resultaat afdrukken.

Output: Hier is de uitvoer die een succesvolle test toont zonder fouttracering, zoals hieronder weergegeven:

Stappen om Test Suite en Test Runner te maken

JUnit Voorbeeld van een testsuite

Beschouw een complexer voorbeeld

JunitTest.java

JunitTest.java is een eenvoudige klasse met aantekeningen @Rennen met en @Suite annotaties. U kunt het aantal .classes in de suite als parameters weergeven, zoals hieronder aangegeven:

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 is een testklasse met een testmethode om een ​​bericht af te drukken, zoals hieronder aangegeven. Je gebruikt deze les als een suite in bovengenoemde les.

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 is een andere testklasse vergelijkbaar met SuiteTest1.java met een testmethode om een ​​bericht af te drukken, zoals hieronder aangegeven. Je gebruikt deze les als 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);							
    }		

}		

uitgang

Na het uitvoeren van JunitTest.java die een suite bevat met test1.java en test2.java, krijgt u onderstaande uitvoer:

SuiteTest2.Java uitgang

SuiteTest2.Java uitgang

Samenvatting

In deze tutorial leert u uitgebreid de basisbeginselen van test harness en testsuites aan de hand van een voorbeeld.

  • Testharnas of automatisering Testen is software of een verzameling software waarmee een gebruiker gegevens met meerdere invoer kan testen en de uitvoering kan controleren
  • Testharnas maakt feitelijk een testframework mogelijk dat al het werk doet van het uitvoeren van tests met behulp van een testbibliotheek en het genereren van een testrapport
  • In Junit kunt u met een testsuite alle testcases van meerdere klassen op één plek samenvoegen en samen uitvoeren.