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.
| 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çãosimilar 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.
-
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 Testprecedem imediatamente as palavras-chave 'protected void.Exemplo de CodeLens
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. -
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.
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:
-
Abra as configurações da extensão.
-
Limpe a configuração
Enable CodeLens.
Em Eclipse:
-
Abra as configurações do site Eclipse IDE.
-
Na entrada watsonx Code Assistant Settings, desmarque a configuração
Enable CodeLens. -
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 ):
-
Expanda seu aplicativo para o código para o qual você deseja gerar um teste de unidade.
-
Clique com o botão direito do mouse no código, clique em watsonx Code Assistant e, em seguida, clique em Teste de unidade.
-
O chat watsonx Code Assistant exibe o comando '
/unit-testpara 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.
- Arquivo: '
-
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.
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 prefixoWCA_dos testes gerados. - Os testes de unidade precisam ser armazenados na pasta
src/test/javade um projeto ou aplicativo Java.
Para corrigir um teste de unidade:
-
Abra a visualização do Explorer.
-
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.
-
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.