[ad_1]
As instalações de teste, também conhecidas como contexto de teste, configuram as condições para a execução de um teste. Essas condições de teste serão um bom estado conhecido, específico do código em teste. Quando o teste é concluído, o estado é restaurado ou reduzido. As condições podem ser configuradas antes da execução de um conjunto de testes e antes da execução de um teste. Os conjuntos de testes são estendidos ainda mais, parametrizando as execuções, permitindo que o mesmo teste execute entradas diferentes.
Aparelhos de teste
Um conjunto de testes agrupa os testes e os executa como um lote. Essa organização permite que os grupos de testes sejam definidos por temas e os conjuntos de testes sejam executados em um subconjunto da funcionalidade do aplicativo.
Em Java, um conjunto de testes é configurado com anotações em nível de classe que referenciam as classes de teste. As configurações antes e depois de cada teste são definidas pelos métodos anotados retrospectivamente, @Before e @After.
@RunWith (Suite.class)
@SuiteClasses ({MyFirstClassTest.class, MySecondClassTest.class})
classe pública CustomerPathTests {
@Antes da aula
público estático void setUpClass () {}
@Depois da aula
public static void tearDownClass () {}
}
classe pública MyFirstClassTest {
@Antes
público vazio setUpTest () {}
@Depois de
public void tearDownTest () {}
@Teste
teste vazio público1 () {}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
@Correr com(Suíte.classe) @SuiteClasses({MyFirstClassTest.classe, MySecondClassTest.classe }) público classe CustomerPathTests { @Antes da aula público estático vazio setUpClass() { } @Depois da aula público estático vazio tearDownClass() { } } público classe MyFirstClassTest { @Antes público vazio setUpTest() {} @Depois de público vazio tearDownTest() {} @Teste público vazio test1() {} } |
Fig 1: Conjunto de testes Junit com configuração e desmontagem.
Um conjunto de testes MUnit é uma coleção de testes MUnit. Um número ilimitado de suítes de teste pode ser criado conforme necessário. O conjunto de testes define a lógica de configuração e desmontagem que é executada antes e depois da execução do conjunto de testes. Opcionalmente, cada teste no conjunto de testes pode configurar estados pré e pós configurados e divididos para cada execução de teste. O elemento de configuração munit: config define um arquivo do conjunto MUnit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<munit:config nome=“deployment-test-suite.xml” /> <munit:antes–suíte nome=“implementação-teste-antes_Suite” ></munit:antes–suíte> <munit:antes–teste nome=“implementação-teste-antes do teste” ></munit:antes–teste> <munit:teste nome=“Teste 1 de execução” descrição=“Teste”> <munit:execução > <fluxo–ref doc:nome=“Ref para getFlights” nome=“getFlights”/> </munit:execução> <munit:validação > <logger nível=“INFO” doc:nome=“Logger” mensagem=“Execução do teste 1”/> </munit:validação> </munit:teste> <munit:depois de–teste nome=“implementação-teste-após-teste” ></munit:depois de–teste> <munit:depois de–suíte nome=“implementação-teste-após_Suite” ></munit:depois de–suíte> |
Fig 2: Conjunto MUnit e configuração e desmontagem do teste.
Testes parametrizados
Testes parametrizados são executados com um conjunto de parâmetros necessários para passar no teste e são executados quantas vezes houver parâmetros definidos. Isso permite que o mesmo teste seja realizado para uma coleção de valores diferentes.
No JUnit, uma matriz de dados é definida como a fonte dos parâmetros. Quando o teste é executado, um de cada valor da matriz é passado para o teste de unidade para cada execução.
@RunWith (Parameterized.class)
classe pública ParameterizedTest {
@Parameter (0)
público String pet;
@Parameters
Lista estática pública
return Arrays.asList (new String[] { “gato cachorro”});
}
@Teste
public void testUpperPet () {
assertEquals (pet, pet.toUpperCase ());
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
@Correr com(Parametrizado.classe) público classe ParameterizedTest { @Parâmetro(0 0) público Corda animal; @Parâmetros público estático Lista<Corda> dados() { Retorna Matrizes.asList(Novo Corda[[] { “gato”, “cachorro”}); } @Teste público vazio testUpperPet() { assertEquals(animal, animal.toUpperCase()); } } |
Fig 3: A matriz String define os parâmetros passados para cada execução de teste.
Uma diferença entre MUnit e JUnit é a capacidade de definir um valor de saída esperado para uso na asserção de teste. Para o MUnit, a parametrização do conjunto de testes é definida em um nível de configuração. Os valores de entrada são definidos como atributos para o
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<munit:config nome=“test-suite-parameterization.xml” > <munit:parametrizações> <munit:parametrização nome=“pet1”> <munit:parâmetros> <munit:parâmetro nome da propriedade=“entrada” valor=“gato” /> <munit:parâmetro nome da propriedade=“resultado” valor=“GATO” /> </munit:parâmetros> </munit:parametrização>
<munit:parametrização nome=“pet2”> <munit:parâmetros> <munit:parâmetro nome da propriedade=“entrada” valor=“cachorro” /> <munit:parâmetro nome da propriedade=“resultado” valor=“CACHORRO” /> </munit:parâmetros> </munit:parametrização> </munit:parametrizações> </munit:config> |
Fig 4: Configuração de parametrização.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<munit:teste nome=“teste parametrizado”> <munit:comportamento> <conjunto–carga útil valor=“$ {input}”/> </munit:comportamento> <munit:validação> <ee:transformar doc:nome=“Transformar mensagem” > <ee:mensagem > <ee:conjunto–carga útil > <![[CDATA[[ %dw 2.0 resultado inscrição/Java –– superior(carga útil) ]]> </ee:conjunto–carga útil> </ee:mensagem> </ee:transformar> <munit–Ferramentas:afirmar–é igual a real=“#[payload]” esperado=“$ {output}” /> </munit:validação> </munit:teste> |
Fig 5: Parâmetro passado via $ {input} e produção esperada via $ {output}.
Como alternativa, a lista de parâmetros pode ser definida no Configuração MUnit Elemento global. Este elemento global é criado automaticamente para cada naipe de teste do MUnit.
Fig 6: Configure os parâmetros de teste usando a GUI de configuração do MUnit.
Conclusão
O MUnit fornece ao desenvolvedor a capacidade de construir equipamentos de teste e parametrizar testes com uma abordagem lógica semelhante, familiar aos programadores Java que executam testes de aplicativos.
Se você estiver interessado em aprender mais sobre as atividades relacionadas ao MUnit e DevOps, essenciais para a implementação de aplicativos Mule prontos para produção, considere nosso curso Anypoint Platform Development: Production-Ready Development Practices (Mule 4).
[ad_2]