Crie JUnit Conjunto de testes com exemplo: @RunWith @SuiteClasses
No Junit, o conjunto de testes nos permite agregar todos os casos de teste de várias classes em um só lugar e executá-los juntos.
Para executar o teste do conjunto, você precisa anotar uma classe usando as anotações mencionadas abaixo:
- @Runwith(Suite.class)
- @SuiteClasses(test1.class,test2.class……) ou@Suite.SuiteClasses ({test1.class, test2.class……})
Com as anotações acima, todas as classes de teste do conjunto começarão a ser executadas uma por uma.
Etapas para criar Test Suite e Test Runner
Passo 1) Crie uma classe de teste simples (por exemplo, MyFirstClassTest) e adicione um método anotado com @test.
Passo 2) Crie outra classe de teste para adicionar (por exemplo, MySecondClassTest) e crie um método anotado com @test.
Passo 3) Para criar um testSuite você precisa primeiro anotar a classe com @RunWith(Suite.class) e @SuiteClasses(class1.class2…..).
Passo 4) Crie uma classe Test Runner para executar nosso conjunto de testes conforme mostrado abaixo;
Explicação do código:
- Linha de código 8: Declarando o método principal da classe test que executará nosso JUnit teste.
- Linha de código 9: Executando casos de teste usando JunitCore.runclasses que usa o nome da classe de teste como parâmetro (no exemplo acima, você está usando TestSuiteExample.class mostrado na etapa 3).
- Linha de código 11: Processando o resultado usando o loop for e imprimindo o resultado com falha.
- Linha de código 13: Imprimindo o resultado bem-sucedido.
Saída: Aqui está a saída que mostra o teste bem-sucedido sem nenhum rastreamento de falha, conforme mostrado abaixo:
JUnit Exemplo de conjunto de testes
Considere um exemplo mais complexo
JunitTest.java
JunitTest.java é uma classe simples anotada com @Correr com e @Suíte anotações. Você pode listar o número de .classes no conjunto como parâmetros, conforme indicado abaixo:
package guru99.junit; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ SuiteTest1.class, SuiteTest2.class, }) public class JunitTest { // This class remains empty, it is used only as a holder for the above annotations }
SuiteTest1.java
SuiteTest1.java é uma classe de teste que possui um método de teste para imprimir uma mensagem conforme mostrado abaixo. Você usará esta classe como um conjunto na classe mencionada acima.
package guru99.junit; import static org.junit.Assert.assertEquals; import org.junit.Test; public class SuiteTest1 { 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 Hi Message is printing "); assertEquals(message, junitMessage.printHiMessage()); System.out.println("Suite Test 2 is successful " + message); } }
SuiteTest2.java
SuiteTest2.java é outra classe de teste semelhante a SuiteTest1.java ter um método de teste para imprimir uma mensagem conforme fornecido abaixo. Você usará esta classe como suíte em JunitTest.java.
package guru99.junit; import org.junit.Assert; import org.junit.Test; public class SuiteTest2 { @Test public void createAndSetName() { String expected = "Y"; String actual = "Y"; Assert.assertEquals(expected, actual); System.out.println("Suite Test 1 is successful " + actual); } }
saída
Depois de executar Teste Junit.java que contém um conjunto com teste1.java e teste2.java, você obterá a saída abaixo:
Resumo
Neste tutorial, você aprendeu os fundamentos do equipamento de teste e dos conjuntos de testes em detalhes com um exemplo.
- Equipamento de teste ou automação Ensaios é um software ou uma coleção de software que permite ao usuário testar dados com múltiplas entradas e controlar a execução
- O equipamento de teste, na verdade, permite uma estrutura de teste que faz todo o trabalho de execução de testes usando uma biblioteca de testes e gerando um relatório de teste
- No Junit, o conjunto de testes nos permite agregar todos os casos de teste de muitas classes em um só lugar e executá-los juntos.