In Junit stelt de testsuite ons in staat om alle testcases uit meerdere klassen op één plek samen te voegen en samen uit te voeren.
Om de suitetest uit te voeren, moet u een klas annoteren met 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 een voor een uitgevoerd.
Stappen om Test Suite en Test Runner te maken
Stap 1) Maak een eenvoudige testklasse (bijv. MyFirstClassTest) en voeg een methode toe die is geannoteerd met @test.
Stap 2) Maak nog een testklasse om toe te voegen (bijv. MySecondClassTest) en maak een methode geannoteerd met @test.
Stap 3) Om een testSuite te maken, moet u de klas eerst annoteren met @RunWith (Suite.class) en @SuiteClasses (class1.class2
Stap 4) Maak een Test Runner-klasse om onze testsuite uit te voeren, zoals hieronder weergegeven;
Code Verklaring:
- Coderegel 8: de hoofdmethode aangeven van de klassetest die onze JUnit-test zal uitvoeren.
- Coderegel 9: Testgevallen 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: Verwerking van het resultaat met for-lus en afdrukken van mislukt resultaat.
- Coderegel 13: het succesvolle resultaat afdrukken.
Uitgang: hier is de uitvoer die een succesvolle test laat zien zonder foutopsporing, zoals hieronder weergegeven:
Voorbeeld van JUnit Test Suite
Sta eens stil bij een complexer voorbeeld
JunitTest.java
JunitTest.java is een eenvoudige klasse met annotaties @RunWith en @Suite . U kunt het aantal .classes in de suite als parameters opgeven, zoals hieronder aangegeven:
pakket guru99.junit;importeer org.junit.runner.RunWith;importeer org.junit.runners.Suite;@RunWith (Suite.class)@ Suite.SuiteClasses ({SuiteTest1. Klasse,SuiteTest2.-klasse,openbare klasse JunitTest {// Deze klasse blijft leeg, deze wordt alleen gebruikt als houder voor de bovenstaande annotaties
SuiteTest1.java
SuiteTest1.java is een testklasse met een testmethode om een bericht af te drukken zoals hieronder weergegeven. Je gebruikt deze klas als een suite in bovengenoemde klas.
pakket guru99.junit;importeer statische org.junit.Assert.assertEquals;importeer org.junit.Test;openbare klasse SuiteTest1 {public String message = "Saurabh";JUnitMessage junitMessage = nieuwe JUnitMessage (bericht);@Test (verwacht = ArithmeticException.class)openbare ongeldige testJUnitMessage () {System.out.println ("Junit Message wordt afgedrukt");junitMessage.printMessage ();@Testopenbare ongeldige testJUnitHiMessage () {message = "Hallo!" + bericht;System.out.println ("Junit Hi Message wordt afgedrukt");assertEquals (bericht, junitMessage.printHiMessage ());System.out.println ("Suite Test 2 is succesvol" + bericht);
SuiteTest2.java
SuiteTest2.java is een andere testklasse vergelijkbaar met SuiteTest1.java met een testmethode om een bericht af te drukken zoals hieronder weergegeven. U gebruikt deze klasse als suite in JunitTest.java .
pakket guru99.junit;importeer org.junit.Assert;importeer org.junit.Test;openbare klasse SuiteTest2 {@Testopenbare ongeldige createAndSetName () {String verwacht = "Y";String actual = "Y";Assert.assertEquals (verwacht, actueel);System.out.println ("Suite Test 1 is succesvol" + actueel);
Uitvoer
Na het uitvoeren van JunitTest .java die een suite bevat met test1.java en test2.java , krijg je onderstaande output:
Overzicht
In deze tutorial heb je de basisprincipes van testharnas en testsuites in detail geleerd met een voorbeeld.
- Testharnas of automatisering Testen is een software of een verzameling software waarmee een gebruiker gegevens met meerdere ingangen kan testen en de uitvoering kan controleren
- Testharnas maakt eigenlijk een testraamwerk mogelijk dat al het werk doet van het uitvoeren van tests met behulp van een testbibliotheek en het genereren van een testrapport
- In Junit stelt de testsuite ons in staat om alle testgevallen van veel klassen op één plek samen te voegen en samen uit te voeren.