junit tutorial beginners what is junit testing
Questo tutorial JUnit per principianti spiega cos'è lo unit test, la copertura dei test e cos'è il framework di test JUnit insieme ad esempi di casi di test JUnit:
Questa serie JUnit è stata preparata per concentrarsi sul nostro pubblico che è principiante assoluto e su coloro che hanno una buona conoscenza di Java o JUnit con un vivo interesse per l'apprendimento di JUnit.
La serie nella sua totalità è stata presentata in modo tale da poter interpretare la differenza tra JUnit 4 e Junit 5.
Cominciamo subito ad esplorare JUnit !!
Cosa imparerai:
elenca tutti i sistemi operativi con cui hai familiarità
Elenco dei tutorial in questa serie JUnit
Tutorial n. 1: Tutorial JUnit per principianti - Che cos'è il test JUnit? (Questo tutorial)
Tutorial n. 2: Scarica, installa e configura JUnit in Eclipse
Tutorial n. 3: Test JUnit: come scrivere casi di test JUnit con esempi
Tutorial n. 4: Che cos'è un dispositivo di prova JUnit: tutorial con esempi di JUnit 4
Tutorial n. 5: Diversi modi per eseguire i test JUnit
Tutorial # 6: Elenco delle annotazioni JUnit: JUnit 4 Vs JUnit 5
Tutorial # 7: JUnit Ignore Test Case: JUnit 4 @Ignore Vs JUnit 5 @Disabled
Tutorial n. 8: JUnit Test Suite e test case di filtraggio: JUnit 4 Vs JUnit 5
Tutorial n. 9: Ordine di esecuzione dei test JUnit: ordine dei test JUnit 4 Vs JUnit 5
Tutorial n.10: Come utilizzare JUnit 5 Annotation @RepeatedTest con esempi
Tutorial n. 11: Classe nidificata JUnit 5: Tutorial @Nested con esempi
Tutorial n. 12: Nome visualizzato personalizzato di JUnit 5 ed esecuzione del test condizionale
Tutorial n.13: JUnit Vs TestNG - Quali sono le differenze
Tutorial su JUnit
In un tipico approccio di sviluppo basato sui test (TDD), gli sviluppatori si concentrano sul test unitario di ogni parte del codice che sviluppano. Migliore è il test di un prodotto, migliore è la sua qualità. Sappiamo tutti che i test dovrebbero andare parallelamente a ogni fase del ciclo di vita dello sviluppo del software.
A partire dai requisiti e dall'analisi fino alla progettazione e sviluppo fino alla manutenzione, ogni fase dovrebbe essere associata a un'adeguata fase di test. Il test unitario dopo lo sviluppo è ciò che è consigliabile per creare un'applicazione robusta e disporre di un codice ottimizzato.
Che cos'è lo unit test?
Il test unitario è il test di una piccola logica o di un codice per verificare che l'output del codice sia quello previsto sull'input di dati specifici e / o sul soddisfacimento di determinate condizioni. Di solito, i test unitari dovrebbero essere indipendenti dagli altri test.
Gli unit test non sono fattibili per testare interfacce complesse con un'altra applicazione o servizi di terze parti / esterni. Uno unit test ha come obiettivo solo una piccola unità di codice che potrebbe essere solo un metodo o una classe.
Aiuta lo sviluppatore a scoprire problemi nella logica corrente e qualsiasi errore di regressione dovuto al cambiamento corrente. Inoltre, fornisce anche informazioni su come il codice corrente potrebbe influire sull'implementazione futura.
Copertura del test
Viene chiamata la percentuale di codice che viene testata dagli unit test copertura di prova .
L'obiettivo è avere una migliore e maggiore copertura dei test del codice che in futuro continua ad aggiungersi alla suite di test di regressione e aiuta ad aumentare l'esecuzione e la verifica dei test automatizzati, riducendo così lo sforzo manuale coinvolto nei test di regressione.
L'esecuzione automatica dei test aiuta a identificare i problemi di regressione del software introdotti dalle modifiche nel codice corrente. Avere un'elevata copertura di test del codice consente di continuare a sviluppare funzionalità senza dover eseguire molti test manuali.
Molti vengono con una domanda su quanta copertura del test è essenziale . La risposta a questa domanda è che non esiste una regola rigida su quanto sia essenziale la copertura dei test; è tutto giudicante. Il giudizio migliora con l'esperienza sul flusso di lavoro dell'applicazione e la conoscenza storica dei difetti riscontrati finora.
Test efficienti non devono necessariamente significare avere una copertura del test del 100% o incorporare test di automazione e / o unit test per ogni singolo ramo o copertura del percorso.
Alcune verifiche banali come un messaggio di errore di convalida per un campo obbligatorio lasciato vuoto che non ha subito difetti da anni non devono essere incluse nella suite di regressione.
miglior convertitore gratuito da youtube a mp3
Test manuale vs test automatizzato
Gli unit test possono essere eseguiti tramite due approcci:
- Test manuale
- Test automatizzati
In entrambi gli approcci il flusso di lavoro rimane comune:
- Creazione di uno scenario di test
- Rivedendolo
- Rielaborare se sono necessarie correzioni
- Esegui il test case
- Analizza i risultati del test
Il test automatico è preferito al test manuale per i seguenti motivi:
Test manuale | Test automatizzati |
---|---|
Quando un testcase viene eseguito manualmente senza l'intervento di uno strumento viene chiamato test manuale. | Quando un testcase viene eseguito con l'aiuto di uno strumento senza molto intervento manuale, viene chiamato test automatizzato. |
Sono inclusi sforzi manuali ripetitivi. | È possibile evitare sforzi manuali ripetitivi. |
Gli sforzi umani nei test manuali potrebbero essere errati e richiedere tempo. | I test di automazione sono più veloci e privi di errori rispetto agli sforzi manuali. |
Le risorse di test richieste sono maggiori per eseguire manualmente ogni testcase, aumentando l'investimento nelle risorse. | Sono necessari meno tester per eseguire test automatizzati utilizzando gli strumenti automatizzati designati, quindi c'è meno investimento nelle risorse di test, aumentando così la redditività. |
I test manuali devono essere limitati a una piccola copertura di test considerando le limitazioni della sequenza temporale. Quindi, c'è il rischio di saltare molti scenari di test, portando così anche al rischio di perdita di difetti. | Molti scenari di test diversi possono essere automatizzati e possono essere eseguiti più volte anche in caso di crisi di tempo e risorse, portando quindi a una migliore copertura dei test e una migliore qualità del deliverable. |
Unit Test Framework
Potremmo avere la prossima domanda su come appare un tipico caso di test di unità di automazione e il framework che segue. Gli sviluppatori usano il Framework di unit test per creare casi di unit test automatizzati.
- Per verificare se il codice funziona logicamente come previsto, viene creato un testcase con un punto di controllo o un criterio di verifica specifico.
- Quando il testcase viene eseguito, il criterio / la condizione supera o fallisce.
- Viene generato un registro secondo il flusso di lavoro del testcase.
- Il framework riporterà un risultato riepilogativo sui casi di test passati e su quelli falliti.
- In base alla gravità dell'errore, il testcase potrebbe non procedere oltre e potrebbe interrompere l'esecuzione successiva.
- Potrebbero esserci alcuni errori di bassa gravità che vengono segnalati nel registro, tuttavia non mostra un arresto definitivo ma continua senza bloccare le ulteriori fasi del test.
Cos'è JUnit?
JUnit è un framework open source utilizzato per scrivere ed eseguire unit test nel linguaggio di programmazione Java. È uno dei framework di unit test più conosciuti.
L'immagine sotto mostra i diversi strumenti di test delle unità di automazione ben noti.
Di seguito sono elencati gli attributi con cui JUnit è confezionato:
- C'è un enorme elenco di annotazioni per identificare, eseguire e supportare molte funzionalità per i metodi di test.
- Ci sono asserzioni per verificare i risultati attesi.
- Fornisce Test Runner per l'esecuzione dei test.
- JUnit fornisce un modello integrato di base in modo da poter scrivere casi di test piccoli e semplici in pochissimo tempo.
- I test JUnit ti aiutano a scrivere moduli indipendenti, migliorando così la copertura del test e la qualità dell'applicazione.
- Non solo consente una facile creazione ed esecuzione dei test, ma presenta anche allo sviluppatore un report esplicito pulito e chiaro che elimina la necessità per lo sviluppatore di cercare attraverso il percorso dei report e dei risultati dei test.
- Fino a quando l'esecuzione del test non procede senza intoppi, puoi rilassarti guardando la barra di avanzamento del test di colore verde che mostra mentre l'esecuzione è in corso mentre ti avvisa in 'rosso' non appena il test non supera un checkpoint di verifica.
- È possibile creare suite di test per mettere insieme una sequenza o un set correlato di casi di test.
Esempi di test case JUnit
Di seguito sono riportati i due esempi di un programma Hello World molto semplice per capire come appare una classe di test JUnit o quanto è diversa rispetto a un normale file di classe Java.
Esempio 1:
Ecco un testcase JUnit HelloWorldJUnit.java che verifica che la stringa 'Hello world' corrisponda alla stringa 'hello world' che fallisce durante l'esecuzione, poiché la corrispondenza fa distinzione tra maiuscole e minuscole. Quindi, le due stringhe non corrispondono e il test non riesce .
Il codice per HelloWorldJUnit.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Esempio n. 2:
Qui, vedremo come al solito Giava file di classe interagisce con un JUnit testcase. Creiamo un file Giava file di classe HelloWorld_Java.java con un costruttore che ci permette di passare un valore String e un metodo getText () per recuperare il valore stringa.
JUnit Classe di prova HelloWorldJUnit.java viene creato in modo tale che l'oggetto classe per HelloWorld_Java venga creato e il valore della stringa effettivo venga passato all'oggetto. AssertEquals () di JUnit verifica se i valori di stringa previsti ed effettivi corrispondono.
Il codice per HelloWorld_Java.java
package demo.tests; import static org.junit.Assert.*; import org.junit.Test; public class HelloWorldJUnit { @Test public void test() { assertEquals('Hello world','hello world'); } }
Il codice per HelloWorldJUnit.java
package demo.tests; public class HelloWorldJUnit{ private String s; public HelloWorld_Java(String s) { @Test public void test() { HelloWorld_Java hw=new HelloWorld_Java('Hello World'); assertEquals(hw.getText(),'Hello World'); } }
La risultante appare come sotto dove vediamo le due stringhe corrispondere. Quindi, il test JUnit è passato.
Conclusione
Quando si tratta di fornirti una rapida panoramica di cos'è JUnit e di cosa fa, JUnit è un framework ben realizzato che consente di creare ed eseguire unit test in modo automatizzato.
È uno strumento open-source eppure così semplice. Che si tratti della creazione di casi di test o dell'esecuzione di un caso di test o di report dopo l'esecuzione o il mantenimento dei test, JUnit è elegante in ogni aspetto. Sì, può fallire anche elegantemente; e vedremo come ciò accadrà nel nostro prossimo tutorial mentre andiamo avanti.
miglior programma per controllare la temperatura del computer
Circa l'autore: Questo tutorial è stato scritto daShobhaD. Lavora come Project Lead e vanta oltre 9 anni di esperienza in test manuali, automazione e API.
Continuiamo a illuminare più a fondo ogni aspetto di JUNIT qui.
Lettura consigliata
- Tutorial Java Reflection con esempi
- Tutorial sul metodo Java String contains () con esempi
- Jagged Array in Java - Tutorial con esempi
- Tutorial approfonditi su Eclipse per principianti
- Tutorial Java SWING: contenitore, componenti e gestione degli eventi
- Operatore ternario in Java - Tutorial con esempi
- 20+ Tutorial MongoDB per principianti: corso MongoDB gratuito
- Tutorial di Spock: test con Spock e Groovy