Pollito Blog
October 15, 2024

La opinión de Pollito acerca del desarrollo en Spring Boot 7: Unit tests

Posted on October 15, 2024  •  2 minutes  • 397 words  • Other languages:  English

Un poco de contexto

Esta es la séptima parte de la serie de blogs Spring Boot Development .

Ya hemos creado todos los componentes. En este blog nos enfocaremos en Unit tests. ¡Comencemos!

1. ¿A qué hacer test?

En lo que respecta a unit testing , esta es mi recomendación:

2. Mutation testing

¿Qué significa “Más del 60 % de mutation coverage”? ¿Qué es la prueba de mutación? Pitest la define como:

Las pruebas de mutación son conceptualmente bastante simples. Los errores (o mutaciones) se introducen automáticamente en el código y luego se ejecutan las pruebas. Si las pruebas fallan, la mutación se elimina; si las pruebas pasan, la mutación sigue viva. La calidad de las pruebas se puede medir a partir del porcentaje de mutaciones eliminadas.

Para obtener esta métrica, utilizamos estos plugins que ya deberíamos tener desde la parte 2

Aquí te dejo un copy-paste listo para usar. Considera revisar la última versión.

Dentro del tag <plugins>:

<plugin>
  <groupId>org.pitest</groupId>
  <artifactId>pitest-maven</artifactId>
  <version>1.17.0</version>
  <executions>
      <execution>
          <id>pit-report</id>
          <phase>test</phase>
          <goals>
              <goal>mutationCoverage</goal>
          </goals>
      </execution>
  </executions>
  <dependencies>
      <dependency>
          <groupId>org.pitest</groupId>
          <artifactId>pitest-junit5-plugin</artifactId>
          <version>1.2.1</version>
      </dependency>
  </dependencies>
  <configuration>
      <targetClasses>
          <param>${project.groupId}.${project.artifactId}.controller.*</param>
          <param>${project.groupId}.${project.artifactId}.service.*</param>
          <param>${project.groupId}.${project.artifactId}.util.*</param>
      </targetClasses>
      <targetTests>
          <param>${project.groupId}.${project.artifactId}.*</param>
      </targetTests>
  </configuration>
</plugin>

3. Generar un reporte

Luego de crear sus unit tests y asegurarse que funcionan, ejecute pitest:mutationCoverage

Screenshot2024-10-15162331

Deberías encontrar en target/pit-reports un index.html, ese es el informe. Screenshot2024-10-15173646

Ábrelo en tu navegador favorito y explora más a fondo cada clase si es necesario. screencapture-localhost-63342-post-target-pit-reports-index-html-2024-10-15-17_54_48

Siguiente lectura

La opinión de Pollito acerca del desarrollo en Spring Boot 8: JpaRepository y H2

Hey, check me out!

You can find me here