Maak JUnit Test Suite met voorbeeld: @RunWith @SuiteClasses

Inhoudsopgave:

Anonim

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:

  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 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.