Teste de exceção esperada JUnit: @Test (esperado)

JUnit fornece a facilidade de rastrear a exceção e também verificar se o código está correto.wing exceção esperada ou não.

Junit4 fornece uma maneira fácil e legível para testes de exceção, você pode usar

  • Parâmetro opcional (esperado) da anotação @test e
  • Para rastrear as informações, ”fail()” pode ser usado

Enquanto ensaio exceção, você precisa garantir que a classe de exceção que você está fornecendo naquele parâmetro opcional de anotação @test é o mesmo. Isso ocorre porque você está esperando uma exceção do método que está Teste de Unidade, de outroswise nosso teste JUnit falharia.

Exemplo@Test(esperado=IllegalArgumentException.class)

Usando o parâmetro “esperado”, você pode especificar o nome da exceção que nosso teste pode lançar. No exemplo acima, você está usando “Exceção de argumento ilegal" que será lançado pelo teste se um desenvolvedor usar um argumento que não é permitido.

Exemplo usando @test(esperado)

Vamos entender o teste de exceção criando um Java classe com um método throwing uma exceção. Você irá lidar com isso e testá-lo em uma aula de teste. Considere JUnitMessage.java tendo um método que simplesmente executa uma operação matemática com base na entrada recebida pelo usuário. Se algum argumento ilegal for inserido, será lançada “ArithmeticException”. Veja abaixo:

Exemplo usando @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;
}

}

Explicação do código:

  • Linha de código 7: Criando um construtor parametrizado com inicialização de campo.
  • Linha de código 11-14: Criando um método para operação matemática.
  • Linha de código 18: Criando outro método para imprimir uma mensagem.
  • Linha de código 20: Criando uma nova string para imprimir uma mensagem.
  • Linha de código 21: Imprimindo nova mensagem criada na linha 20.

Vamos criar uma classe de teste para a classe Java acima para verificar a exceção.

Veja abaixo a classe de teste para exceção de teste de unidade (ArithmeticException aqui)wing da classe java acima:

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());
	
	}
}

Explicação do código:

  • Linha de código 13: Usando a anotação @Test para criar nosso teste. Conforme você executa o método de classes acima, ele invocará uma operação matemática. Aqui é esperada uma exceção aritmética, então você a lista como um parâmetro em @Test.
  • Linha de código 17: Invocando printMessage() JUnitMessage.java
  • Linha de código 18: Criando outro método para imprimir mensagem HI.

Se você executar esta classe de teste, o método de teste será executado com cada parâmetro definido. No exemplo acima, o método de teste é executado cinco vezes.

Vamos executá-lo e verificar o resultado. Veja abaixo a classe do executor de testes para executar JunitTestExample.java

Saída:

Aqui está a saída que mostra o teste bem-sucedido sem nenhum rastreamento de falha, conforme mostrado abaixo:

Saída AirthematicTest.Java

Resumo

  • O teste de exceção é um recurso especial introduzido no JUnit4. Neste tutorial, você aprendeu como testar exceção em JUnit usando @test(excepted)
  • Junit fornece a facilidade de rastrear a exceção e também verificar se o código está correto.wing exceção ou não
  • Para testes de exceção, você pode usar
    • Parâmetro opcional (esperado) da anotação @test e
    • Para rastrear as informações, ”fail()” pode ser usado