JUnit fornece a facilidade de rastrear a exceção e também para verificar se o código está lançando a exceção esperada ou não.
Junit4 fornece uma maneira fácil e legível para teste de exceção, você pode usar
- Parâmetro opcional (esperado) da anotação @test e
- Para rastrear as informações, "fail ()" pode ser usado
Ao testar a exceção, você precisa garantir que a classe de exceção que você está fornecendo naquele parâmetro opcional da anotação @test seja a mesma. Isso ocorre porque você está esperando uma exceção do método em que está testando a unidade, caso contrário, nosso teste JUnit falhará.
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 " IllegalArgumentException" 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 uma classe Java com um método que lança uma exceção. Você vai lidar com isso e testá-lo em uma classe de teste. Considere JUnitMessage.java tendo um método que simplesmente faz uma operação matemática com base na entrada recebida pelo usuário. Se qualquer argumento ilegal for inserido, ele lançará "ArithmeticException " . Ver abaixo:
package guru99.junit;public class JUnitMessage {mensagem String privada;public JUnitMessage (String mensagem) {esta.mensagem = mensagem;}public void printMessage () {System.out.println (mensagem);divisão int = 1/0;}public String printHiMessage () {mensagem = "Oi!" + mensagem;System.out.println (mensagem);mensagem de retorno;}}
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 a exceção de teste de unidade (ArithmeticException aqui) lançada da classe Java acima:
AirthematicTest.java
package guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Test;public class AirthematicTest {mensagem pública String = "Saurabh";JUnitMessage junitMessage = new JUnitMessage (mensagem);@Test (esperado = ArithmeticException.class)public void testJUnitMessage () {System.out.println ("Mensagem Junit está sendo impressa");junitMessage.printMessage ();}@Testepublic void testJUnitHiMessage () {mensagem = "Oi!" + mensagem;System.out.println ("Mensagem Junit está sendo impressa");assertEquals (mensagem, 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 das classes acima, ele invoca uma operação matemática. Aqui, a exceção aritmética é esperada, portanto, você a está listando 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 é 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 teste para executar JunitTestExample.java
Resultado:
Aqui está a saída que mostra o teste bem-sucedido sem rastreamento de falha, conforme fornecido abaixo:
Resumo:
- O teste de exceção é um recurso especial introduzido no JUnit4. Neste tutorial, você aprendeu como testar exceção em JUnit usando @test (exceto)
- O Junit fornece a facilidade de rastrear a exceção e também verificar se o código está gerando exceção ou não
- Para teste de exceção, você pode usar
- Parâmetro opcional (esperado) da anotação @test e
- Para rastrear as informações, "fail ()" pode ser usado