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:

  1. @Runwith(Suite.class)
  2. @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.

Passaggi per creare la suite di test e il test runner

Passo 2) Crea un'altra classe di test da aggiungere (ad esempio MySecondClassTest) e crea un metodo annotato con @test.

Passaggi per creare la suite di test e il test runner

Passo 3) Per creare una testSuite devi prima annotare la classe con @RunWith(Suite.class) e @SuiteClasses(class1.class2…..).

Passaggi per creare la suite di test e il test runner

Passo 4) Crea una classe Test Runner per eseguire la nostra suite di test come indicato di seguito;

Passaggi per creare la suite di test e il test runner

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:

Passaggi per creare la suite di test e il test runner

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:

SuiteTest2.Java Uscita

SuiteTest2.Java Uscita

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.