Anotação de teste JUnit @Ignore com exemplo

Índice:

Anonim

À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:

  1. Se você quiser ignorar um método de teste, use @Ignore junto com a anotação @Test.
  2. 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:

  1. Criar uma classe de teste simples sem ignorar um teste.
  2. Ignore um método de teste usando a anotação @Ignore.
  3. Ignore um método de teste usando a anotação @Ignore com o motivo adequado.
  4. 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:

  1. Se você quiser ignorar um método de teste, use @Ignore junto com a anotação @Test.
  2. 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.