MuleSoft - Testando com MUnit

Entendemos que o teste de unidade é um método pelo qual unidades individuais de código-fonte podem ser testadas para determinar se são adequadas para uso ou não. Os programadores Java podem usar a estrutura Junit para escrever casos de teste. Da mesma forma, a MuleSoft também possui uma estrutura chamada MUnit, que nos permite escrever casos de teste automatizados para nossas APIs e integrações. É um ajuste perfeito para um ambiente de integração / implantação contínua. Uma das maiores vantagens do framework MUnit é que podemos integrá-lo com Maven e Surefire.

Características do MUnit

A seguir estão alguns dos recursos muito úteis da estrutura de teste Mule MUnit -

  • Na estrutura MUnit, podemos criar nosso teste Mule usando o código Mule, bem como código Java.

  • Podemos projetar e testar nossos aplicativos Mule e APIs, graficamente ou em XML, no Anypoint Studio.

  • O MUnit nos permite integrar facilmente o teste ao processo CI / CD existente.

  • Ele fornece testes gerados automaticamente e relatórios de cobertura; portanto, o trabalho manual é mínimo.

  • Também podemos usar servidores locais de banco de dados / FTP / correio para tornar os testes mais portáteis por meio do processo de CI.

  • Isso nos permite habilitar ou desabilitar os testes.

  • Também podemos estender a estrutura MUnit com plug-ins.

  • Ele nos permite verificar as chamadas do processador de mensagens.

  • Com a ajuda da estrutura de teste MUnit, podemos desabilitar conectores de endpoint, bem como endpoints de entrada de fluxo.

  • Podemos verificar relatórios de erros com o rastreamento de pilha do Mule.

Versão mais recente do Mule MUnit Testing Framework

MUnit 2.1.4 é a versão mais recente da estrutura de teste Mule MUnit. Requer os seguintes requisitos de hardware e software -

  • MS Windows 8+
  • Apple Mac OS X 10.10+
  • Linux
  • Java 8
  • Maven 3.3.3, 3.3.9, 3.5.4, 3.6.0

É compatível com Mule 4.1.4 e Anypoint Studio 7.3.0.

MUnit e Anypoint Studio

Conforme discutido, MUnit é totalmente integrado no Anypoint Studio e podemos projetar e testar nossos aplicativos Mule e APIs graficamente ou em XML dentro do Anypoint Studio. Em outras palavras, podemos usar a interface gráfica do Anypoint Studio para fazer o seguinte -

  • Para criar e projetar testes MUnit
  • Para executar nossos testes
  • Para visualizar os resultados do teste, bem como o relatório de cobertura
  • Para depurar os testes

Portanto, vamos começar a discutir cada tarefa, uma por uma.

Criação e projeto de testes MUnit

Depois de iniciar um novo projeto, ele adicionará automaticamente uma nova pasta, a saber src/test/munitao nosso projeto. Por exemplo, começamos um novo projeto Mule, nomeadamentetest_munit, você pode ver na imagem abaixo, adiciona a pasta acima mencionada em nosso projeto.

Agora, depois de iniciar um novo projeto, existem duas maneiras básicas de criar um novo teste MUnit no Anypoint Studio -

  • By Right-Clicking the Flow - Neste método, precisamos clicar com o botão direito do mouse no fluxo específico e selecionar MUnit no menu suspenso.

  • By Using the Wizard- Neste método, precisamos usar o assistente para criar um teste. Ele nos permite criar um teste para qualquer fluxo na área de trabalho.

Usaremos a forma 'Clique com o botão direito do mouse no fluxo' para criar um teste para um fluxo específico.

Primeiro, precisamos criar um fluxo no espaço de trabalho da seguinte maneira -

Agora, clique com o botão direito neste fluxo e selecione MUnit para criar um teste para este fluxo, conforme mostrado abaixo -

Ele criará um novo conjunto de testes com o nome do arquivo XML em que o fluxo reside. Nesse caso,test_munit-test-suite é o nome do novo conjunto de testes conforme mostrado abaixo -

A seguir está o editor XML para o fluxo de mensagens acima -

Agora, podemos adicionar um MUnit processador de mensagens para o conjunto de testes arrastando-o do Mule Palette.

Se você deseja criar um teste por meio do Assistente, siga File → New → MUnit e isso o levará ao seguinte conjunto de testes MUnit -

Configurando o teste

No Mule 4, temos duas novas seções, a saber MUnit e MUnit Tools, tendo coletivamente todos os processadores de mensagens MUnit. Você pode arrastar qualquer um dos processadores de mensagens em sua área de teste MUnit. É mostrado na imagem abaixo -

Agora, se você deseja editar a configuração do seu traje ou teste no Anypoint Studio, você precisa seguir os passos abaixo -

Step 1

Vou ao Package Explorer e clique com o botão direito no .xml filepara sua suíte ou teste. Em seguida, selecione oProperties.

Step 2

Agora, na janela Propriedades, precisamos clicar Run/Debug Settings. Após este cliqueNew.

Step 3

Na última etapa, clique em MUnit debaixo Select Configuration Type janela e clique em OK.

Executando o Teste

Podemos executar um conjunto de testes, bem como um teste. Primeiro, veremos como executar um conjunto de testes.

Executando um pacote de teste

Para executar uma suíte de testes, clique com o botão direito do mouse na parte vazia do Mule Canvas onde está sua suíte de testes. Isso abrirá um menu suspenso. Agora, clique noRun MUnit suite como mostrado abaixo -

Mais tarde, podemos ver a saída no console.

Executando um Teste

Para executar um teste específico, precisamos selecionar o teste específico e clicar com o botão direito nele. Teremos o mesmo menu suspenso que obtivemos durante a execução do conjunto de testes. Agora, clique noRun MUnit Test opção como mostrado abaixo -

Depois disso, a saída pode ser vista no console.

Ver e analisar o resultado do teste

Anypoint Studio exibe o resultado do teste MUnit no MUnit tabdo painel esquerdo do explorador. Você pode encontrar testes bem-sucedidos na cor verde e testes reprovados no vermelho, conforme mostrado abaixo -

Podemos analisar o resultado do nosso teste visualizando o relatório de cobertura. O principal recurso do Relatório de Cobertura é fornecer uma métrica de quanto de um aplicativo Mule foi executado com sucesso por um conjunto de testes MUnit. A cobertura do MUnit é basicamente baseada na quantidade de processadores de mensagens MUnit executados. O relatório de cobertura do MUnit fornece métricas para o seguinte -

  • Cobertura geral do aplicativo
  • Cobertura de recursos
  • Cobertura de fluxo

Para obter o relatório de cobertura, precisamos clicar em 'Gerar Relatório' na guia MUnit conforme mostrado abaixo -

Depurando o teste

Podemos depurar um conjunto de testes, bem como um teste. Primeiro, veremos como depurar um conjunto de testes.

Depurando um conjunto de testes

Para depurar um conjunto de testes, clique com o botão direito do mouse na parte vazia do Mule Canvas onde o seu conjunto de testes reside. Isso abrirá um menu suspenso. Agora, clique noDebug MUnit Suite como mostrado na imagem abaixo -

Então, podemos ver a saída no console.

Depurando um Teste

Para depurar um teste específico, precisamos selecionar o teste específico e clicar com o botão direito nele. Obteremos o mesmo menu suspenso que obtivemos durante a suíte de teste de depuração. Agora, clique noDebug MUnit Testopção. Isso é mostrado na captura de tela abaixo.