Test di eccezione previsto per JUnit: @Test (previsto)

Sommario:

Anonim

JUnit fornisce la funzione per tracciare l'eccezione e anche per verificare se il codice genera o meno l'eccezione prevista.

Junit4 fornisce un modo semplice e leggibile per il test delle eccezioni, che puoi usare

  • Parametro facoltativo (previsto) dell'annotazione @test e
  • Per tracciare le informazioni, è possibile utilizzare "fail ()"

Durante il test dell'eccezione, è necessario assicurarsi che la classe di eccezione fornita in quel parametro opzionale dell'annotazione @test sia la stessa. Questo perché ti aspetti un'eccezione dal metodo che stai testando, altrimenti il ​​nostro test JUnit fallirebbe.

Esempio @ Test (previsto = IllegalArgumentException.class)

Utilizzando il parametro "previsto", è possibile specificare il nome dell'eccezione che il nostro test potrebbe generare. Nell'esempio precedente, stai utilizzando " IllegalArgumentException" che verrà lanciata dal test se uno sviluppatore utilizza un argomento non consentito.

Esempio di utilizzo di @test (previsto)

Comprendiamo il test delle eccezioni creando una classe Java con un metodo che genera un'eccezione. Lo gestirai e lo testerai in una classe di prova. Considera che JUnitMessage.java ha un metodo che esegue semplicemente un'operazione matematica basata sull'input ricevuto dall'utente. Se viene inserito un argomento illegale, verrà lanciata "ArithmeticException " . Vedi sotto:

pacchetto guru99.junit;classe pubblica JUnitMessage {messaggio String privato;public JUnitMessage (String message) {this.message = messaggio;}public void printMessage () {System.out.println (messaggio);int divide = 1/0;}public String printHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println (messaggio);messaggio di ritorno;}}

Spiegazione del codice:

  • Riga di codice 7: creazione di un costruttore parametrizzato con inizializzazione del campo.
  • Riga di codice 11-14: creazione di un metodo per operazioni matematiche.
  • Riga di codice 18: creazione di un altro metodo per stampare un messaggio.
  • Riga di codice 20: creazione di una nuova stringa per stampare un messaggio.
  • Riga di codice 21: stampa del nuovo messaggio creato nella riga 20.

Creiamo una classe di test per la classe java sopra per verificare l'eccezione.

Vedi sotto la classe di test per l'eccezione di unit test (ArithmeticException qui) che lancia dalla classe java sopra:

AirthematicTest.java

pacchetto guru99.junit;import statico org.junit.Assert.assertEquals;import org.junit.Test;public class AirthematicTest {public String message = "Saurabh";JUnitMessage junitMessage = nuovo JUnitMessage (messaggio);@Test (previsto = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Il messaggio di Junit è in stampa");junitMessage.printMessage ();}@Testpublic void testJUnitHiMessage () {messaggio = "Ciao!" + messaggio;System.out.println ("Il messaggio di Junit è in stampa");assertEquals (message, junitMessage.printMessage ());}}

Spiegazione del codice:

  • Riga di codice 13: utilizzo dell'annotazione @Test per creare il nostro test. Mentre esegui il metodo delle classi sopra, richiamerà un'operazione matematica. Qui è prevista l'eccezione aritmetica, quindi la stai elencando come parametro in @Test.
  • Riga di codice 17: richiamo di printMessage () JUnitMessage.java
  • Riga di codice 18: creazione di un altro metodo per stampare il messaggio HI.

Se si esegue questa classe di test, il metodo di test viene eseguito con ogni parametro definito. Nell'esempio sopra, il metodo di prova viene eseguito cinque volte.

Eseguiamolo e verifichiamo il risultato. Vedi sotto la classe del test runner per eseguire JunitTestExample.java

Produzione:

Ecco l'output che mostra il test riuscito senza traccia di errore come indicato di seguito:

Sommario:

  • Il test delle eccezioni è una funzionalità speciale introdotta in JUnit4. In questo tutorial, hai imparato come testare l'eccezione in JUnit usando @test (eccetto)
  • Junit fornisce la funzione per tracciare l'eccezione e anche per verificare se il codice sta generando un'eccezione o meno
  • Per il test delle eccezioni, puoi usare
    • Parametro facoltativo (previsto) dell'annotazione @test e
    • Per tracciare le informazioni, è possibile utilizzare "fail ()"