MUnit para programadores Java: execução de teste

MUnit para programadores Java: execução de teste

MUnit para programadores Java: execução de teste
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Os testes de unidade são executados em diferentes estágios durante o ciclo de vida do desenvolvimento. Conforme mencionado na primeira postagem no blog desta série, MUnit para programadores Java: Introdução, os testes de unidade desempenham um papel essencial nos estágios de implementação, manutenção e evolução do ciclo de vida de um projeto. Os testes podem ser executados durante cada uma dessas etapas e os resultados são coletados e analisados. Se o aplicativo passar na série de testes, continuará em sua jornada pelo ciclo de vida do projeto. No entanto, para que a execução seja possível, é necessário um chicote de teste. Nesta postagem do blog, examinarei as maneiras pelas quais o JUnit e o MUnit executam testes e fornecem resultados.

Execução de teste

A execução do teste MUnit depende do tempo de execução do Mule. O tempo de execução do Mule deve estar em execução com êxito antes que os testes do MUnit possam ser executados. Isso leva tempo e adiciona um atraso para a execução do teste. Por outro lado, o JUnit possui um equipamento de teste leve e os testes são executados quase imediatamente. É importante considerar ao projetar processos que requerem execução de teste. Normalmente, os testes são executados como parte de um pipeline de CI / CD e durante o desenvolvimento. Para testes MUnit, pode ser conveniente executar um subconjunto desses testes. Isso permite que apenas sejam executados os testes relevantes para o desenvolvimento realizado.

Executando um subconjunto de testes JUnit

O JUnit fornece uma abordagem orientada a anotações e interface de marcador para definir subconjuntos de casos de teste. O teste é anotado com o @Categoria anotação que é configurada com uma interface de marcador que representa o nome da tag pela qual classificar o caso de teste.

FIg 1: O caso de teste é anotado com a interface do marcador.

Uma classe vazia é anotada com as classes de caso de teste que contêm anotações para a interface de marcador especificada.

Fig 2: Os conjuntos de teste e categoria são configurados em uma classe de conjunto de testes.

Executando um subconjunto de testes MUnit

A identificação de casos de teste é muito mais simples no MUnit. Qualquer teste pode ser marcado com uma ou mais tags. Isso é feito no munit: test elemento.

Fig 3: Caso de teste marcado com “asserção”.

Para executar um subconjunto de casos, os testes do MUnit podem ser executados usando o Maven Plugin. Todos os testes marcados ou um subconjunto de testes marcados podem ser executados na linha de comando.

Fig 4: Executado apenas os casos de teste anotados com asserção e simulação.

Como alternativa, o arquivo POM pode ser configurado para executar um conjunto de casos de teste marcados.

Fig 5: Configure o plug-in MUnit Maven para executar apenas asserções de tags de teste.

Além de especificar a tag, você pode especificar o arquivo XML de configuração de teste MUnit real a ser executado quando o teste for iniciado.

Fig 6: As várias maneiras de executar o subconjunto de testes.

Ignorar o recurso nos testes JUnit

JUnit permite que os testes sejam ignorados anotando casos de teste com o @Ignorar anotação.

Fig 7: Ignore este teste quando os testes são executados.

Ignorar recurso nos testes MUnit

MUnit permite que os testes sejam ignorados, definindo o ignorar atributo do munit: test elemento para true.

Fig 7: Defina o atributo ignore como true.

Todos os testes podem ser ignorados, definindo o -DskipTests sinalizador em uma execução do Maven ou no skipMunitTests elemento no arquivo POM.

Fig 8: Configure o Maven para executar testes.

Suspensão e tempo limite com JUnit

O comportamento relacionado ao tempo pode ser simulado no JUnit adormecendo um encadeamento. Existem várias maneiras de fazer isso, mas uma maneira é usar o método sleep () da classe java.util.concurrent.TimeUnit. Os tempos limites podem ser testados para usar a regra org.junit.rules.Timeout ou definir a propriedade timeout do @Teste anotação.

Fig 9: O tempo limite e o sono definidos no caso de teste.

Suspensão e tempo limite com MUnit

A MUnit replicou a funcionalidade de suspensão configurando o processador de eventos de suspensão com um tempo para aguardar valor e unidade de tempo.

Fig 10: Configure o processo do evento de suspensão para aguardar.

O tempo limite está configurado no munit: test elemento com o tempo esgotado atributo. Por padrão, os testes do MUnit atingem o tempo limite após dois minutos.

Fig 11: Defina o atributo timeOut no elemento munit: test.

Maven e MUnit

Como já vimos, os testes MUnit são executáveis ​​através do comando Maven teste limpo do mvn, graças ao plug-in MUnit Maven. Este plug-in também configura o relatório de cobertura de teste, permitindo configurar a porcentagem de cobertura de teste e o formato do relatório.

Fig 12: O MUnit Maven Plugin fornece uma variedade de opções de configuração.

A localização padrão do relatório de cobertura de teste é {raiz do projeto} target site munit cobertura recursos.

Resultados do teste e MUnit

Os relatórios do Surefire podem ser configurados para gerar quando os testes do MUnit são executados via Maven, mvn surefire-report: relatório. Por padrão, os relatórios do Surefire estão localizados no diretório {raiz do projeto} target surefire-reports diretório e o relatório HTML está localizado em {raiz do projeto} target site.

Fig 13: Configure o plug-in Maven Surefire para gerar relatórios de teste.

Conclusão

Esta série de postagens no blog explorou a estrutura de teste do MUnit da perspectiva de um programador Java, mostrando que há semelhanças impressionantes entre a maneira como um desenvolvedor Java implementaria testes e como um desenvolvedor Mule atenderia ao mesmo requisito. Em muitos casos, a abordagem replica exatamente a abordagem JUnit, como no teste de asserção. Em outros casos, o MUnit cria sua própria visão sobre como os testes devem ser aplicados, como a implementação do Spies.

Qualquer desenvolvedor Java experiente não terá problemas para se adaptar à implementação de teste de unidade usando o MUnit.

Se você estiver interessado em aprender mais sobre o MUnit e as atividades relacionadas ao DevOps essenciais para implementar aplicativos Mule prontos para produção, considere nosso curso Anypoint Platform Development: Production-Ready Development Practices (Mule 4).


cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Qual é o melhor para o SEO do blog: domínio, subdomínio ou subpasta separados?
Luiz Presso
Luiz Presso