Geração de testes unitários

watsonx Code Assistant

Gere testes de unidade para várias linguagens de programação a partir do bate-papo, do site CodeLens no editor ou no explorador.

A tabela a seguir lista o tipo de teste de unidade para cada plano.

Tipos de teste de unidade
Plano Teste de unidade Descrição
Plano de teste Plano essencial Básico Usa IA generativa para fornecer um teste de unidade básico. Não é necessária nenhuma análise de código adicional.
Plano Standard Aprimorados Requer um aplicativo criado e usa uma análise de código e IA generativa para fornecer um teste de unidade aprimorado para métodos e classes do Java.

Somente no Eclipse IDE: Para obter melhores resultados com um aplicativo Java multimódulo, certifique-se de importar o módulo agregador e cada submódulo como projetos separados no espaço de trabalho Eclipse. é improvável que Watsonx Code Assistant introspeccione seu projeto com sucesso se você importar o diretório de nível superior como um único projeto.

Suporte ao idioma

A geração de testes está disponível para os seguintes idiomas:

  • C
  • C++
  • Acessar
  • Java
  • JavaScript
  • Python
  • TypeScript

Quando você faz referência a um método ou usa CodeLens em um método, watsonx Code Assistant oferece suporte a determinadas linguagens de código. A referência a um arquivo completo funciona em todos os idiomas. Para obter mais informações, consulte Suporte ao idioma quando você trabalha com métodos.

Dependencies

Plano padrão Para Java, certifique-se de que o arquivo ' pom.xml inclua as seguintes dependências:

  • JUnit - É necessário um mínimo de JUnit 5
  • Mockito- É necessário um mínimo de Java 9

O arquivo " pom.xml de amostra a seguir mostra as dependências com versões de exemplo. Em seu arquivo, inclua as dependências e versões que você está usando.

   <dependencies>
      <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter-api</artifactId>
         <version>5.10.0</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-core</artifactId>
         <version>5.12.0</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.mockito</groupId>
         <artifactId>mockito-junit-jupiter</artifactId>
         <version>5.12.0</version>
         <scope>test</scope>
      </dependency>
   </dependencies>

Usar um comando de bate-papo para gerar um teste de unidade

Você pode usar o comando " /unit-test no bate-papo para gerar um teste para uma classe, um arquivo, uma função ou um método referenciado no espaço de trabalho ativo.

Use esta sintaxe:

/unit-test [using <test_framework>] <code reference> [similar to (<unit test reference>)] [additional instructions]

  • Certifique-se de iniciar o prompt com /unit-test, seguido do restante da sintaxe.

  • [using <test_framework>] é opcional. Se você não especificar a estrutura, o site watsonx Code Assistant usará a estrutura de teste de suas configurações.

  • Para " <code reference>, digite o símbolo " @ para ver uma lista de classes, arquivos, funções e métodos do seu espaço de trabalho. Use uma referência de classe, arquivo, função ou método por vez.

    Quando você faz referência a um arquivo, o limite de tamanho é de 50 KB. Se você atingir esse limite, divida o arquivo em funções individuais e faça referência a cada função. Ou, divida o arquivo em 49 KB, cuidando dos limites da função, e faça referência ao arquivo em cada divisão. Em qualquer uma das abordagens, você precisa mesclar os resultados.

  • [similar to (<unit test reference>)] é opcional. Use para fornecer um exemplo de como se espera que o teste de unidade gerado seja. Você pode usar uma referência de método na opção similar to, se necessário.

  • O " [additional instructions] é opcional. Adicione instruções se quiser detalhes específicos.

Em seguida, watsonx Code Assistant processa a solicitação e, no bate-papo, exibe o teste de unidade gerado para o código que você selecionou.

  • Essentials plan Copie o teste de unidade para um arquivo em que você tenha testes de unidade para o seu aplicativo.

  • Plano padrão Copie o teste de unidade para um arquivo na estrutura de diretório de alto nível src/test/java. Por exemplo, copie o arquivo de teste de unidade para ' .../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java.

Usando o CodeLens no editor para gerar testes de unidade

No editor do IDE, o CodeLens mostra uma linha de opções de IA generativa que precede os blocos e trechos de código.

Problema conhecido Se você estiver usando a extensão watsonx Code Assistant for Enterprise Java Applications, na inicialização poderá levar alguns segundos para que os recursos aprimorados do Java estejam disponíveis no CodeLens.

  1. Clique na opção Teste de unidade que precede imediatamente um bloco de código para gerar um teste de unidade.

    No exemplo de código a seguir, as opções ' Explain | Document | Unit Test precedem imediatamente as palavras-chave ' protected void.

    Exemplo de CodeLens
    Exemplo deCodeLens

    A janela de bate-papo watsonx Code Assistant é aberta, exibe o comando ' /unit-test @<*item name*>, executa o comando e exibe o teste de unidade.

  2. Essentials plan Copie o teste de unidade para um arquivo em que você tenha testes de unidade para o seu aplicativo.

  3. Plano padrão Copie o teste de unidade para um arquivo na estrutura de diretório de alto nível src/test/java. Por exemplo, copie o arquivo de teste de unidade para ' .../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java.

Desativação CodeLens

Se quiser desativar as opções do CodeLens, você pode alterar a configuração da extensão ou do plug-in.

Em Visual Studio Code:

  1. Abra as configurações da extensão.

  2. Limpe a configuração Enable CodeLens.

Em Eclipse:

  1. Abra as configurações do site Eclipse IDE.

  2. Na entrada watsonx Code Assistant Settings, desmarque a configuração Enable CodeLens.

  3. Clique em Aplicar e fechar.

Usando o explorador para gerar testes de unidade

Para gerar um teste de unidade a partir do Explorer ( Visual Studio Code ) ou do Project Explorer ( Eclipse ):

  1. Expanda seu aplicativo para o código para o qual você deseja gerar um teste de unidade.

  2. Clique com o botão direito do mouse no código, clique em watsonx Code Assistant e, em seguida, clique em Teste de unidade.

  3. O chat watsonx Code Assistant exibe o comando ' /unit-test para o código que você selecionou para o teste de unidade. A sintaxe a seguir é usada no comando:

    /unit-test @<*item syntax*>

    Os exemplos de sintaxe a seguir são para um arquivo, uma classe e um método.

    • Arquivo: ' /unit-test @OrdersAlertFilter.java
    • Classe: /unit-test @OrdersAlertFilter
    • Método: /unit-test @DoFilter()

    Watsonx Code Assistant processa a solicitação e, no bate-papo, exibe o teste de unidade gerado para o código que você selecionou.

  4. Essentials plan Copie o teste de unidade para um arquivo em que você tenha testes de unidade para o seu aplicativo.

  5. Plano padrão Copie o teste de unidade para um arquivo na estrutura de diretório de alto nível src/test/java. Por exemplo, copie o arquivo de teste de unidade para ' .../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java.

Correção de testes de unidade

Plano padrão Você pode iniciar uma correção de teste de unidade para testes gerados por watsonx Code Assistant. A correção de testes de unidade só está disponível com a extensão watsonx Code Assistant for Enterprise Java Applications Visual Studio Code ou com o plug-in Eclipse, versão 1.1.0 e posteriores.

Se estiver usando o watsonx Code Assistant on-premises como um serviço do IBM Software Hub, é necessária a versão 5.2 ou posterior.

Requisitos:

  • O recurso Fix Unit Test está disponível para testes gerados pelo site watsonx Code Assistant que começam com o prefixo WCA_. Não remova o prefixo WCA_ dos testes gerados.
  • Os testes de unidade precisam ser armazenados na pasta src/test/java de um projeto ou aplicativo Java.

Para corrigir um teste de unidade:

  1. Abra a visualização do Explorer.

  2. Na pasta de testes, clique com o botão direito do mouse em um arquivo de teste existente, clique em watsonx Code Assistant e, em seguida, clique em Fixar teste de unidade.

    O processo é executado em duas fases:

    • Fase de correção de compilação: Atualiza o arquivo no editor com o código compilado limpo
    • Fase de correção do tempo de execução: Verifica se há erros de tempo de execução no teste de unidade

    Se ocorrerem falhas durante o processo, o código será comentado. Por exemplo, se os erros de compilação forem corrigidos, mas o código resultante tiver erros de tempo de execução.

  3. Quando as duas fases são concluídas, o arquivo de teste de unidade é atualizado e pode ser executado.

Lembre-se dos pontos a seguir:

  • Se uma referência com um nome de classe totalmente qualificado ou um método totalmente qualificado estiver faltando no caso de teste gerado, a correção do teste de unidade será cancelada.
  • Seu aplicativo deve estar na versão 9 ou posterior do Java para corrigir um teste de unidade.
  • Seu aplicativo deve ser analisado antes que o teste de unidade possa ser corrigido.
  • A geração de testes às vezes gera classes, interfaces ou pacotes importados desnecessários. Se as importações causarem erros de compilação ou de tempo de execução, você poderá comentá-las.