Generación de pruebas unitarias

watsonx Code Assistant

Genere pruebas unitarias para varios lenguajes de programación desde el chat, la página CodeLens del editor o el explorador.

La siguiente tabla enumera el tipo de prueba unitaria para cada plan.

Tipos de pruebas unitarias
Plan Prueba de unidad Descripción
Plan de prueba " Plan Essentials Básico Utiliza IA generativa para proporcionar una prueba de unidad básica. No es necesario un análisis adicional del código.
Plan Estándar Mejorado Requiere una aplicación integrada y utiliza un análisis de código y una IA generativa para proporcionar una prueba unitaria mejorada para métodos y clases de Java.

Sólo Eclipse IDE: Para obtener los mejores resultados con una aplicación Java multimódulo, asegúrese de importar el módulo agregador y cada submódulo como proyectos independientes dentro del espacio de trabajo Eclipse. es poco probable que Watsonx Code Assistant introspeccione correctamente su proyecto si importa el directorio de nivel superior como un único proyecto.

Soporte de idiomas

La generación de pruebas está disponible para los siguientes idiomas:

  • C
  • C++
  • Go
  • Java
  • JavaScript
  • Python
  • TypeScript

Cuando se hace referencia a un método, o se utiliza CodeLens en un método, watsonx Code Assistant admite determinados lenguajes de código. La referencia a un archivo completo funciona en todos los idiomas. Para obtener más información, consulte Ayuda lingüística al trabajar con métodos.

Dependencias

Plan estándar Para Java, asegúrese de que el archivo ' pom.xml ' incluye las siguientes dependencias:

  • JUnit: se requiere un mínimo de JUnit 5
  • Mockito- Se requiere un mínimo de Java 9

El siguiente archivo ' pom.xml ' de ejemplo muestra las dependencias con versiones de ejemplo. En su archivo, incluya las dependencias y versiones que está utilizando.

   <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>

Uso de un comando de chat para generar una prueba unitaria

Puede utilizar el comando ' /unit-test en el chat para generar una prueba para una clase, archivo, función o método referenciado en el área de trabajo activa.

Utilice esta sintaxis:

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

  • Asegúrese de iniciar la consulta con /unit-test, seguido del resto de la sintaxis.

  • [using <test_framework>] es opcional. Si no especifica el marco, watsonx Code Assistant utiliza el marco de prueba de su configuración.

  • Para ' <code reference>, escriba el símbolo ' @ para ver una lista de clases, archivos, funciones y métodos de su espacio de trabajo. Utilice una referencia de clase, archivo, función o método a la vez.

    Al hacer referencia a un archivo, el límite de tamaño es de 50 KB. Si alcanza este límite, divida el archivo en funciones individuales y haga referencia a cada una de ellas. O divida el archivo en 49 KB, teniendo en cuenta los límites de las funciones, y haga referencia al archivo en cada división. Con cualquiera de los dos métodos, hay que fusionar los resultados.

  • [similar to (<unit test reference>)] es opcional. Utilícelo para proporcionar un ejemplo de cómo se espera que sea la prueba unitaria generada. Puede utilizar una referencia de método en la opción " similar to " si es necesario.

  • Los ' [additional instructions] ' son opcionales. Añada instrucciones si desea detalles específicos.

A continuación, watsonx Code Assistant procesa la petición y en el chat muestra la prueba unitaria generada para el código que has seleccionado.

  • Essentials plan ' Copie la prueba unitaria en un archivo donde tenga pruebas unitarias para su aplicación.

  • Plan estándar Copie la prueba unitaria en un archivo de la estructura de directorios de alto nivel src/test/java. Por ejemplo, copie el archivo de pruebas unitarias en ' .../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java.

Uso de CodeLens en el editor para generar pruebas unitarias

En el editor IDE, CodeLens muestra una línea de opciones de IA generativa que precede a los bloques y fragmentos de código.

Problema conocido Si utiliza la extensión watsonx Code Assistant for Enterprise Java Applications, al iniciarse puede que las funciones Java mejoradas tarden unos segundos en estar disponibles en CodeLens.

  1. Haga clic en la opción Prueba de unidad que precede inmediatamente a un bloque de código para generar una prueba de unidad.

    En el siguiente ejemplo de código, las opciones " Explain | Document | Unit Test " preceden inmediatamente a las palabras clave " protected void ".

    CodeLens ejemplo
    CodeLens ejemplo

    La ventana de chat watsonx Code Assistant se abre, muestra el comando ' /unit-test @<*item name*>, ejecuta el comando y muestra la prueba unitaria.

  2. Essentials plan ' Copie la prueba unitaria en un archivo donde tenga pruebas unitarias para su aplicación.

  3. Plan estándar Copie la prueba unitaria en un archivo de la estructura de directorios de alto nivel src/test/java. Por ejemplo, copie el archivo de pruebas unitarias en ' .../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java.

Desactivación de CodeLens

Si desea desactivar las opciones de CodeLens, puede cambiar la configuración de la extensión o complemento.

En Visual Studio Code:

  1. Abra la configuración de la extensión.

  2. Borre la configuración de Enable CodeLens.

En Eclipse:

  1. Abra la configuración de Eclipse IDE.

  2. En la entrada watsonx Code Assistant Settings, desactive la opción Enable CodeLens.

  3. Haga clic en Aplicar y cierre.

Uso del explorador para generar pruebas unitarias

Para generar una prueba unitaria desde el Explorador ( Visual Studio Code ) o el Explorador de proyectos ( Eclipse ):

  1. Amplíe su aplicación al código para el que desea generar una prueba unitaria.

  2. Haga clic con el botón derecho en el código, haga clic en watsonx Code Assistant y, a continuación, haga clic en Prueba unitaria.

  3. El chat watsonx Code Assistant muestra el comando ' /unit-test ' para el código que ha seleccionado para las pruebas unitarias. En el comando se utiliza la siguiente sintaxis:

    /unit-test @<*item syntax*>

    Los siguientes ejemplos de sintaxis corresponden a un fichero, una clase y un método.

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

    Watsonx Code Assistant procesa la solicitud y en el chat muestra la prueba unitaria generada para el código que seleccionaste.

  4. Essentials plan ' Copie la prueba unitaria en un archivo donde tenga pruebas unitarias para su aplicación.

  5. Plan estándar Copie la prueba unitaria en un archivo de la estructura de directorios de alto nivel src/test/java. Por ejemplo, copie el archivo de pruebas unitarias en ' .../src/test/java/com/acme/modres/WCA_OrdersAlertFilter_Test.java.

Corrección de pruebas unitarias

Plan estándar Puede iniciar un arreglo de pruebas unitarias para las pruebas generadas por watsonx Code Assistant. La corrección de pruebas unitarias sólo está disponible con la extensión watsonx Code Assistant for Enterprise Java Applications Visual Studio Code o el complemento Eclipse, versión 1.1.0 y posteriores.

Si utiliza watsonx Code Assistant on-premises como servicio de IBM Software Hub, se requiere la versión 5.2 o posterior.

Requisitos:

  • La función Fix Unit Test está disponible para las pruebas generadas por watsonx Code Assistant que comienzan con el prefijo WCA_. No elimine el prefijo WCA_ de las pruebas generadas.
  • Las pruebas unitarias deben almacenarse en la carpeta src/test/java de un proyecto o aplicación Java.

Para corregir una prueba unitaria:

  1. Abra la vista Explorador.

  2. En la carpeta de pruebas, haga clic con el botón derecho en un archivo de pruebas existente, haga clic en watsonx Code Assistant y, a continuación, haga clic en Corregir prueba unitaria.

    El proceso se desarrolla en dos fases:

    • Fase de corrección de la compilación: Actualiza el archivo en el editor con código limpio compilado
    • Fase de corrección en tiempo de ejecución: Comprueba si hay errores de ejecución en la prueba unitaria

    Si se producen fallos durante el proceso, el código se comenta. Por ejemplo, si se corrigen los errores de compilación pero el código resultante tiene errores de ejecución.

  3. Una vez completadas las dos fases, el archivo de pruebas unitarias se actualiza y puede ejecutarse.

Tenga en cuenta los siguientes puntos:

  • Si falta una referencia con un nombre de clase totalmente cualificado o un método totalmente cualificado en el caso de prueba generado, se cancela la corrección de la prueba unitaria.
  • Su aplicación debe estar en Java versión 9 o posterior para fijar una prueba unitaria.
  • Su aplicación debe ser analizada antes de que la prueba unitaria pueda ser fijada.
  • La generación de pruebas a veces genera clases, interfaces o paquetes importados innecesarios. Si las importaciones provocan errores de compilación o de ejecución, puede comentarlas.