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:
- @Runwith(Suite.class)
- @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.
Stap 2) Maak nog een testklasse om toe te voegen (bijvoorbeeld MySecondClassTest) en maak een methode met de annotatie @test.
Stap 3) Om een testSuite te maken, moet u eerst de klasse annoteren met @RunWith(Suite.class) en @SuiteClasses(class1.class2…..).
Stap 4) Creëer een Test Runner-klasse om onze testsuite uit te voeren, zoals hieronder aangegeven;
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:
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:
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.