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.

Añadir librería JUnit

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.

Testear con JUnit 5
Crear JUnit Test Case

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:

Testear con JUnit 5
Resultado exitoso ejecución Test

Si por el contrario existen fallos en la ejecución, se mostrarían:

Resultado fallido ejecución Test
Resultado fallido ejecución Test

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.

Botón Coverage

Observa el resultado en la pestaña que aparece Covegare:

Resultado cobertura EclEmma
Resultado Cobertura

A partir de aquí podemos analizar si nuestras pruebas de Test cubren todas las instrucciones observando los porcentajes.


Comparte si te ha gustado. Así me ayudas y motivas a mantener esta web. ¡Muchas gracias!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *