JUnit Test dell'eccezione prevista: @Test(previsto)

JUnit fornisce la possibilità di tracciare l'eccezione e anche di controllare se il codice sta generando l'eccezione prevista o meno.

Junit4 fornisce un modo semplice e leggibile per il test delle eccezioni che è possibile utilizzare

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

Mentre Testing eccezione, devi assicurarti che la classe di eccezione che stai fornendo in quel parametro facoltativo di @annotazione di prova è la stessa. Questo perché ti aspetti un'eccezione dal metodo che sei Test unitari, altrimenti il ​​nostro JUnit il test fallirebbe.

Esempio@Test(expected=IllegalArgumentException.class)

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

Esempio utilizzando @test(previsto)

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

Esempio utilizzando @Test

package guru99.junit;

public class JUnitMessage{

	private String message;

	public JUnitMessage(String message) {
		this.message = message;
	}

public void printMessage(){

	System.out.println(message); 
	int divide=1/0;

}

public String printHiMessage(){ 

	message="Hi!" + message;
	
	System.out.println(message);

	return message;
}

}

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 alla riga 20.

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

Vedere di seguito la classe di test per l'eccezione del test unitario (qui ArithmeticException) generata dalla classe Java precedente:

AirthematicTest.java

AirthematicTest.Java

package guru99.junit;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class AirthematicTest {

	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 Message is printing ");
		assertEquals(message, junitMessage.printMessage());
	
	}
}

Spiegazione del codice:

  • Riga di codice 13: Utilizzando l'annotazione @Test per creare il nostro test. Quando esegui il metodo delle classi sopra, verrà richiamata un'operazione matematica. Qui è prevista un'eccezione aritmetica, quindi la elenchi come parametro in @Test.
  • Riga di codice 17: Richiamo printMessage() JUnitMessaggio.java
  • Riga di codice 18: Creazione di un altro metodo per stampare il messaggio HI.

Se esegui questa classe di test, il metodo di test viene eseguito con ciascun parametro definito. Nell'esempio precedente, il metodo di prova viene eseguito cinque volte.

Eseguiamolo e verifichiamo il risultato. Vedi sotto la classe del test runner da eseguire Esempio di test Junit.java

Produzione:

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

AirthematicTest.Java Uscita

Sommario

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