Nello sviluppo del software, lo unit test è un processo che isola e testa sezioni dedicate di un'applicazione. Le unità sono il termine formale per queste sezioni dedicate. Nella tua applicazione Java, un'unità è un metodo.

Ci sono molti framework di unit test disponibili per gli sviluppatori Java. Tra i migliori framework c'è JUnit 5.

Perché il test unitario è importante?

Se hai mai scritto istruzioni di debug per stampare e controllare il valore di una variabile, congratulazioni; hai creato uno unit test. Questa sezione di codice usa e getta era necessaria perché non si riceveva l'output desiderato.

Ma cosa succede se si riceve l'output desiderato e il codice contiene ancora un errore da qualche parte? Potresti distribuire l'applicazione e questo bug potrebbe causare una violazione della sicurezza in un secondo momento. Per le applicazioni che archiviano i dati degli utenti, la posta in gioco è alta quando si verifica una violazione della sicurezza.

Il test unitario prende di mira ogni sezione dell'applicazione, indipendentemente dal fatto che stia attualmente causando un errore o meno. Pertanto, il test unitario gioca un ruolo significativo

instagram viewer
buona sicurezza del software.

Cos'è JUnit 5?

JUnit 5 è più di un semplice framework di unit test. Ha diversi sottoprogetti, in particolare JUnit Platform, JUnit Jupiter e JUnit Vintage. Ciascuno di questi tre componenti ha moduli unici che lavorano insieme per migliorare i test per i programmatori Java.

La piattaforma JUnit 5 è disponibile nelle ultime versioni delle principali piattaforme di sviluppo integrate Java (IDE). Gli IDE Java che supportano JUnit 5 sono:

  • IntelliJ IDEA
  • Eclisse
  • NetBean
  • Codice di Visual Studio

Creazione di unit test con JUnit 5

Questo programma di esempio utilizza JUnit 5 per creare diversi unit test su una semplice applicazione calcolatrice.

La classe calcolatrice

pacchetto app;

pubblicoclasseCalcolatrice{
pubblicostaticointInserisci(int num1, int num2){
Restituzione num1 + num2;
}

pubblicostaticointsottrarre(int num1, int num2){
Restituzione num1 - num2;
}

pubblicostaticointmoltiplicare(int num1, int num2){
Restituzione num1 * num2;
}

pubblicostaticointdividere(int num1, int num2){
Restituzione num1 / num2;
}
}

Il classe Java sopra esegue quattro operazioni statiche: addizione, sottrazione, moltiplicazione e divisione. Ogni metodo accetta due argomenti interi e restituisce un singolo valore intero.

La classe di prova JUnit 5

pacchetto test;

importarestatico org.junit. Asserire.*;
importare app. Calcolatrice;
importareorg.giugno.Test;

pubblicoclasseCalcolatriceTest{
@Test
pubblicovuototestAdd(){
assertEquals(7, Calcolatrice.Inserisci(3, 4));
}

@Test
pubblicovuototestSottrai(){
assertEquals(6, Calcolatrice.sottrarre(9, 3));
}

@Test
pubblicovuotoprova Moltiplica(){
assertEquals(10, Calcolatrice.moltiplicare(5, 2));
}

@Test
pubblicovuotoprovaDividi(){
assertEquals(2, Calcolatrice.dividere(4, 2));
}
}

CalcolatriceTest introduce due concetti importanti: il @Test annotazione e il assertEquals() metodo. L'annotazione @Test indica che il metodo immediatamente sottostante è un metodo di test. Nella classe di test sopra ci sono quattro metodi di prova, uno per ciascuna delle operazioni della calcolatrice.

Tutti i metodi di test utilizzano il metodo assertEquals(). Questo metodo accetta due argomenti obbligatori e un terzo argomento facoltativo. Il primo argomento fornito al metodo assertEquals() sopra è il risultato atteso e il secondo argomento è il metodo (o unità) che si desidera valutare.

La classe CalculatorTest non ha un metodo principale, ma le annotazioni JUnit @Test rendono eseguibile ciascuno dei metodi di test. L'esecuzione della classe CalculatorTest in Eclipse produce la seguente interfaccia:

Come puoi vedere, ogni test ha successo. Sono disponibili quattro test e tutti sono stati eseguiti senza errori o errori.

Il test delle unità di apprendimento può ampliare le tue opportunità di carriera

Come sviluppatore, sapere come testare il software è un'abilità vantaggiosa da possedere. Migliorerà sicuramente il tuo flusso di lavoro e, si spera, renderà il tuo codice più facile da usare per gli altri. Tuttavia, esiste una branca dello sviluppo software che si concentra esclusivamente sui test. Questi ingegneri sono conosciuti come tester del software.