Creare JUnit Test Suite con esempio: @RunWith @SuiteClasses
In Junit, la suite di test ci consente di aggregare tutti i casi di test di più classi in un unico posto ed eseguirli insieme.
Per eseguire il test della suite, devi annotare una classe utilizzando le annotazioni indicate di seguito:
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……) o@Suite.SuiteClasses ({test1.class, test2.class……})
Con le annotazioni precedenti, tutte le classi di test nella suite inizieranno ad essere eseguite una per una.
Passaggi per creare Test Suite e Test Runner
Passo 1) Crea una semplice classe di test (ad esempio MyFirstClassTest) e aggiungi un metodo annotato con @test.
Passo 2) Crea un'altra classe di test da aggiungere (ad esempio MySecondClassTest) e crea un metodo annotato con @test.
Passo 3) Per creare una testSuite devi prima annotare la classe con @RunWith(Suite.class) e @SuiteClasses(class1.class2…..).
Passo 4) Crea una classe Test Runner per eseguire la nostra suite di test come indicato di seguito;
Spiegazione del codice:
- Riga di codice 8: Dichiarare il metodo principale del test della classe su cui verrà eseguito il ns JUnit test.
- Riga di codice 9: Esecuzione di casi di test utilizzando JunitCore.runclasses che accetta il nome della classe di test come parametro (nell'esempio sopra, stai utilizzando TestSuiteExample.class mostrato nel passaggio 3).
- Riga di codice 11: Elaborazione del risultato utilizzando il ciclo for e stampa del risultato non riuscito.
- Riga di codice 13: Stampa del risultato positivo.
Produzione: Ecco l'output che mostra il test riuscito senza traccia di errore come indicato di seguito:
JUnit Esempio di suite di test
Consideriamo un esempio più complesso
Test Junit.java
JunitTest.java è una semplice classe annotata con @Corri con e dell' @Suite annotazioni. Puoi elencare il numero di .classes nella suite come parametri come indicato di seguito:
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 è una classe di test che ha un metodo di test per stampare un messaggio come indicato di seguito. Utilizzerai questa lezione come suite nella classe sopra menzionata.
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 è un'altra classe di test simile a SuiteTest1.java avere un metodo di prova per stampare un messaggio come indicato di seguito. Utilizzerai questa classe come suite in Test Junit.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); } }
Uscita
Dopo l'esecuzione Test di Junit.java che contiene una suite avente prova1.java e dell' prova2.java, otterrai l'output seguente:
Sommario
In questo tutorial hai imparato in dettaglio le basi del test harness e delle test suite con un esempio.
- Testare il cablaggio o l'automazione Testing è un software o una raccolta di software che consente a un utente di testare dati con più input e controllarne l'esecuzione
- Test cablaggio abilita effettivamente un framework di test che svolge tutto il lavoro di esecuzione dei test utilizzando una libreria di test e generando un report di test
- In Junit, la test suite ci consente di aggregare tutti i casi di test di molte classi in un unico posto ed eseguirli insieme.