JUnit Test parametrizzato con esempio utilizzando @Parameters

Cos'è il test parametrizzato in Junit?

Il test parametrizzato consiste nell'eseguire lo stesso test più e più volte utilizzando valori diversi. Aiuta lo sviluppatore a risparmiare tempo nell'esecuzione dello stesso test che differisce solo per gli input e i risultati attesi.

Utilizzando il test con parametri, è possibile impostare un metodo di test che recuperi i dati da alcune origini dati.

Considera un semplice test per sommare numeri diversi. Il codice potrebbe essere simile a:

Test parametrizzato in Junit

L'approccio di cui sopra porta a molta ridondanza.

Abbiamo bisogno di un approccio semplice e. Utilizzando il test parametrizzato puoi semplicemente aggiungere un metodo per inserire 10 input di dati e il test verrà eseguito automaticamente 10 volte.

Passaggi per creare un file parametrizzato JUnit test

Il codice seguente mostra un esempio di test parametrico. Testa il metodo sum() della classe Arithmetic:

Passo 1) Crea una classe. In questo esempio, inseriremo due numeri utilizzando il metodo sum (int,int) che restituirà la somma dei numeri indicati

Passaggi per creare un file con parametri JUnit Test

Passo 2) Creare una classe di test con parametri

Passaggi per creare un file con parametri JUnit Test

Spiegazione del codice

  • Riga di codice 11: Annota la tua classe di test utilizzando @runWith(Parameterized.class).
  • Riga di codice 13: Dichiarare la variabile "firstNumber" come privata e digitare come int.
  • Riga di codice 14: Dichiarare la variabile "secondNumber" come privata e digitare come int.
  • Riga di codice 15: Dichiarare la variabile "expectedResult" come privata e digitare come int.
  • Riga di codice 16: Dichiarare la variabile "airthematic" come privata e digitare Airthematic.

@Corri con(nome_classe.classe): @Corri con l'annotazione viene utilizzata per specificare il nome della classe runner. Se non specifichiamo alcun tipo come parametro, sarà il runtime a scegliere BlockJunit4ClassRunner per impostazione predefinita.

Questa classe è responsabile dell'esecuzione dei test con una nuova istanza di test. È responsabile dell'invocazione JUnit metodi del ciclo di vita come installazione (risorse associate) e smontaggio (risorse di rilascio).

Per parametrizzare è necessario annotare utilizzando @RunWith e passare il file .class richiesto per essere testato

Passo 3) Creare un costruttore che memorizzi i dati di test. Memorizza 3 variabili

Passaggi per creare un file con parametri JUnit Test

Passo 4) Creare un metodo statico che generi e restituisca dati di test.

Passaggi per creare un file con parametri JUnit Test

Riga di codice 32,33: Creazione di un array bidimensionale (fornendo parametri di input per l'addizione). Utilizzando il metodo asList convertiamo i dati in un tipo List. Poiché il tipo restituito dell'input del metodo è collection.

Riga di codice 30: utilizzando @Parametri annotazione per creare una serie di dati di input per eseguire il nostro test.

Il metodo statico identificato dall'annotazione @Parameters restituisce una raccolta in cui ciascuna voce nella raccolta costituirà i dati di input per un'iterazione del test.

Considera l'elemento

{} 1,2,3

Qui

primoNumero =1

secondoNumero=2

risultato atteso=3

Qui ogni elemento dell'array verrà passato al costruttore, uno alla volta poiché la classe viene istanziata più volte.

Passo 5) Il codice completo

Passaggi per creare un file con parametri JUnit Test

Spiegazione del codice:

  • Riga di codice 25: Utilizzando l'annotazione @Before per impostare le risorse (Airthematic.class qui). L'annotazione @Before viene utilizzata qui per essere eseguita prima di ogni caso di test. Contiene le precondizioni del test.
  • Riga di codice 36: Utilizzo dell'annotazione @Test per creare il nostro test.
  • Riga di codice 39: Creare un'istruzione assert per verificare se la nostra somma è equivalente a quanto ci aspettavamo.

Passo 6) Crea una classe del test runner per eseguire il test parametrizzato:

Passaggi per creare un file con parametri JUnit Test

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: Eseguendo i casi di test utilizzando JunitCore.runclasses, prenderà il nome della classe di test come parametro (nel nostro esempio stiamo utilizzando Airthematic.class).
  • 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 un file con parametri JUnit Test

Guarda il risultato sulla console, che mostra l'addizione di due numeri: -

JUnit Test parametrizzato

Sommario

Il test parametrizzato consente allo sviluppatore di eseguire lo stesso test più e più volte utilizzando valori diversi.

Annotazioni importanti da utilizzare durante la parametrizzazione

  • @Corri con
  • @Parametri