Às vezes, pode ser necessário não executar um método / código ou caso de teste porque a codificação não é feita totalmente. Para esse teste específico, o JUnit fornece a anotação @Ignore para pular o teste.
Neste tutorial, você aprenderá-
- O que é a anotação de teste JUnit @Ignore
- Exemplo de teste Junit - ignorar
- Criar uma classe de teste simples sem ignorar um teste
- Ignorar um método de teste usando a anotação @Ignore
- Usando @ ignore a anotação com Condição
- Ignore todos os métodos de teste usando a anotação @Ignore.
O que é a anotação de teste JUnit @Ignore
A anotação de teste @Ignore é usada para ignorar testes específicos ou grupo de testes para pular a falha de construção.
A anotação @Ignore pode ser usada em dois cenários, conforme mostrado abaixo:
- Se você quiser ignorar um método de teste, use @Ignore junto com a anotação @Test.
- Se você quiser ignorar todos os testes da classe, use a anotação @Ignore no nível da classe.
Você pode fornecer o motivo para desativar um teste no parâmetro opcional fornecido pela anotação @Ignore.
Isso ajudará outros desenvolvedores que trabalham no mesmo código, a entender "por que um teste específico está desativado?" Quando o problema daquele teste específico for corrigido, você pode simplesmente habilitá-lo removendo a anotação @Ignore .
Exemplo de teste Junit - ignorar
Conforme discutido na definição acima, você pode usar a anotação @Ignore para ignorar um teste ou grupo do teste.
Vamos entendê-lo usando um exemplo simples e nos cenários fornecidos abaixo:
- Criar uma classe de teste simples sem ignorar um teste.
- Ignore um método de teste usando a anotação @Ignore.
- Ignore um método de teste usando a anotação @Ignore com o motivo adequado.
- Ignore todos os métodos de teste usando a anotação @Ignore.
Criar uma classe de teste simples sem ignorar um teste
Vamos criar uma classe Java simples que imprime dois tipos de mensagem.
- O primeiro método imprime uma mensagem simples e
- O segundo método imprime uma mensagem "oi"
JUnitMessage.java
package guru99.junit;public class JUnitMessage {mensagem String privada;public JUnitMessage (String mensagem) {esta.mensagem = mensagem;}public String printMessage () {System.out.println (mensagem);mensagem de retorno;}public String printHiMessage () {mensagem = "Olá!" + mensagem;System.out.println (mensagem);mensagem de retorno;}}
JunitTestExample.java
Vamos criar uma classe de teste JUnit para testar JUnitMessage.java.
Nesta classe de teste JUnit,
- O primeiro teste, denominado "testJUnitMessage ()" testa o método "printMessage ()" da classe acima.
- Da mesma forma, o segundo teste, denominado "testJUnitHiMessage" testa "testJUnitHiMessage" da classe acima.
package guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Test;public class JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensagem);@Testepublic void testJUnitMessage () {System.out.println ("Mensagem Junit está sendo impressa");assertEquals (mensagem, junitMessage.printMessage ());}@Testepublic void testJUnitHiMessage () {mensagem = "Oi!" + mensagem;System.out.println ("Junit Hi Message está imprimindo");assertEquals (mensagem, junitMessage.printHiMessage ());}}
TestRunner.java
Vamos criar uma classe de executor de teste para executar JunitTestExample.java
package guru99.junit;import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;public class TestRunner {public static void main (String [] args) {Resultado do resultado = JUnitCore.runClasses (JunitTestExample.class);para (falha falha: result.getFailures ()) {System.out.println (failure.toString ());}System.out.println ("Result ==" + result.wasSuccessful ());}}
Resultado:
Imprima o extrato no console:
A mensagem Junit Hi está sendo impressa
Olá! Guru99
Mensagem Junit está sendo impressa
Guru99
Ignorar um método de teste usando a anotação @Ignore
Vamos criar ignorar teste para desabilitar um teste no exemplo acima. Para isso, você precisa usar @Ignore no método que deseja pular.
Vamos fazer isso para testJUnitMessage () de JunitTestExample.java
JunitTestExample.java
package guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;public class JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensagem);@Ignorar@Testepublic void testJUnitMessage () {System.out.println ("Mensagem Junit está sendo impressa");assertEquals (mensagem, junitMessage.printMessage ());}@Testepublic void testJUnitHiMessage () {mensagem = "Oi!" + mensagem;System.out.println ("Junit Hi Message está imprimindo");assertEquals (mensagem, junitMessage.printHiMessage ());}}
Resultado:
Vamos executar e verificar a saída do exemplo acima.
A saída abaixo mostra que um teste foi ignorado (desabilitado), veja como marcado abaixo:
Imprima o extrato no console:
A mensagem Junit Hi está sendo impressa
Olá! Guru99
Usando @ ignore a anotação com Condição
Vamos pegar o exemplo de como ignorar um teste e definir o motivo para ignorá-lo junto com ele. Conforme discutido acima, para fornecer um motivo, você tem um parâmetro opcional na anotação @Ignore onde você pode fornecer a declaração do motivo.
JunitTestExample.java
package guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;public class JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensagem);@Ignore ("ainda não está pronto, ignore.")@Testepublic void testJUnitMessage () {System.out.println ("Mensagem Junit está sendo impressa");assertEquals (mensagem, junitMessage.printMessage ());}@Testepublic void testJUnitHiMessage () {mensagem = "Oi!" + mensagem;System.out.println ("Junit Hi Message está imprimindo");assertEquals (mensagem, junitMessage.printHiMessage ());}}
Resultado:
O mesmo que acima.
Ignore todos os métodos de teste usando a anotação @Ignore.
Conforme discutido acima, para ignorar todos os testes em classe, você precisa usar a anotação @Ignore no nível da classe.
Vamos modificar o exemplo acima para entender como ignorar todos os testes:
package guru99.junit;import static org.junit.Assert.assertEquals;import org.junit.Ignore;import org.junit.Test;@Ignorarpublic class JunitTestExample {public String message = "Guru99";JUnitMessage junitMessage = new JUnitMessage (mensagem);@Testepublic void testJUnitMessage () {System.out.println ("Mensagem Junit está sendo impressa");assertEquals (mensagem, junitMessage.printMessage ());}@Testepublic void testJUnitHiMessage () {mensagem = "Oi!" + mensagem;System.out.println ("Junit Hi Message está imprimindo");assertEquals (mensagem, junitMessage.printHiMessage ());}}
Resultado :
Imprima o extrato no console:
Como ambos os testes foram ignorados usando @Ignore no nível da classe, nenhuma instrução seria impressa no console.
Resumo:
Neste tutorial, você aprendeu como ignorar um único teste, grupo de testes ou todos os testes usando a anotação @Ignore.
A anotação @Ignore pode ser usada em dois cenários, conforme mostrado abaixo:
- Se você quiser ignorar um método de teste, use @Ignore junto com a anotação @Test.
- Se você quiser ignorar todos os testes da classe, use a anotação @Ignore no nível da classe.
Você também aprendeu como fornecer uma declaração para fazer entender outro desenvolvedor, por que um determinado teste está desabilitado.