Testear con JUnit 5
Una vez desarrollado nuestro código Java, será muy útil y necesario probar nuestro código. Esto puede resolverse utilizando el framework JUnit, con el cuál podremos realizar pruebas unitarias a nuestro código y verificar que cumple con los requisitos que buscamos. En este ejemplo, vamos a testear con JUnit 5 nuestro código basado en un proyecto Java 8 desarrollado en Eclipse. Recuerda que JUnit 5 es compatible a partir de la versión Java 8. Al finalizar el ejemplo, mediremos cobertura de testeo que posee nuestra aplicación a través del plugin EclEmma.
Ten en cuenta que JUnit está pensado para realizar pruebas sobre métodos independientes públicos o estáticos, ya que sino no serán accesibles desde nuestras clases de Test.
Sigue leyendo y observa este sencillo ejemplo.
Instalar JUnit 5 en Eclipse
Abre Eclipse y crea un nuevo proyecto o abre uno que ya tengas. Yo tengo un proyecto basado en este tutorial: Convertir de Word a PDF. Así que lo utilizaré.
Una vez abierto el proyecto, haz clic derecho sobre él y elige Properties -> Java Build Path. Activa la pestaña Libraries y haz clic sobre Add Library…
Selecciona JUnit -> Next -> Finish -> Apply and close.
Recuerda que también puedes añadir la librería a través de Maven, pero yo he añadido la librería de esta forma, que es igual de válida.
Observa que se han añadido todas las librerías correspondientes a JUnit 5 a tu proyecto.
Crear test
Sitúate sobre el proyecto, muestra el menú contextual y selecciona New -> Other -> JUnit Test Case (Dentro de Java/JUnit) -> Next.
Completa la información para la clase de Test.
Presiona Finish.
Se crea la clase de Test, pero sin implementación aún y generará un error por defecto.
Codificar clase de Test
Este sería mi código para la clase de pruebas PrincipalTest (Observa las anotaciones @Test al comienzo de cada método y los métodos assertTrue()):
package developrogramming.com.test;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.junit.jupiter.api.Test;
import developrogramming.com.Principal;
class PrincipalTest {
XWPFDocument documentoWord;
File archivoWord = new File("C:\\ficherosParaLeer\\fichero1.docx");
File archivoPDF = new File("C:\\ficherosParaLeer\\fichero1.pdf");
@Test
void leerDocxTest() {
documentoWord = Principal.leerDocx(archivoWord);
assertNotNull(documentoWord);
}
@Test
void convertirPDFTest() {
leerDocxTest();
boolean resultado = Principal.convertirPDF(archivoPDF, documentoWord);
assertTrue(resultado);
}
}
Ejecutar Test
Esto es simple, para ello sitúate sobre la clase PrincipalTest, muetra el menú contextual y selecciona Run As -> JUnit Test.
Observa que se abre una nueva pestaña con el resultado de la ejecución:
Si por el contrario existen fallos en la ejecución, se mostrarían:
Comprobar cobertura
En una aplicación con mucho código puede ser útil analizar la cobertura y ver si se nos ha escapado algún test.
Instalar EclEmma
En este caso he utilizado el plugin EclEmma, aunque existen otros. Éste se instala desde Help -> Eclipse Marketplace -> Busca en el cuadro de texto introduciendo EclEmma y presionando Enter -> Presiona Install -> Acepta los término y presiona Finish. Reinicia Eclipse si es necesario.
Ejecutar EclEmma
Una vez reiniciado Eclipse, selecciona la clase de pruebas PrincipalTest y presiona sobre el nuevo botón Coverage añadido en la barra de herramientas de Eclipse.
Observa el resultado en la pestaña que aparece Covegare:
A partir de aquí podemos analizar si nuestras pruebas de Test cubren todas las instrucciones observando los porcentajes.