Pruebas unitarias con JUnit y Eclipse

Escribir software de buena calidad no es solo cuestion de buenas practicas de ingenieria si no que tambien sobre tener ciertos criteros de calidad que se deben cumplir en mente, y uno de estos criterios son las pruebas uniarias.

Las pruebas unitarias son pruebas que sirven para determinar si piezas independientes de codigo funciona correctamente y de manera esperada.

En este ejemplo realizaremos un proyecto “hola mundo” en java y maven, y realizaremos unas cuantas pruebas unitarias al mismo. El proyecto lo realizaremos en eclipse y su integración con maven.

Crear el proyecto

Como primer paso necesitamos crear el proyecto de maven en eclipse. Para ello nos vamos a File -> New -> Project y nos aparece el siguiente diálogo:

Seleccionamos “Maven Project” para que nos genere los archivos necesarios. y en el siguiente paso seleccionamos estas casillas

Ahora hay que configurar el proyecto resultante, para que genere un artefacto de maven.

Manos al código!

Ahora que ya tenemos eso, abrimos nuestro archivo pom.xml y agregamos la siguiente dependencia justo después de la descripcion:

Ahora dentro del proyecto (src/main/java) creamos una clase que es la que vamos a probar, digamos que es la siguiente:

Una clase simple que dice si un numero es mas grande que el otro. Ahora bien procedemos a crear las pruebas unitarias para esta clase. Para ello es necesario que conozcamos algunas anotaciones importantes para los métodos de la clase de prueba.

@BeforeClass: Es usado para escribir código que correra antes de todas las pruebas.
@Before: Código que correra antes de cada uno de los tests
@Test: Código de la prueba unitaria
@After: Código que corre antes de cada una de las pruebas
@AfterClass: Código que corre despues de todas las pruebas.

Ahora escribimos la clase que prueba la clase anterior, por convención la nombramos igual solo que con la palabra “Test” al final. Y debe estar alojada en el mismo paquete, solo que esta vez en la ruta src/test/java

Como pueden ver el método que probamos lo anotamos como @Test, y se llama igual que en la clase que estamos probando.

En el método anotado como @BeforeClass creamos una nueva instancia de la clase que estamos probando para poder usarla durante todas las pruebas. Si tuvieramos mas métodos, y campos que son modificados convendría restaurar la instancia a su valor inicial antes de cada prueba.

Las demás anotaciones estan puestas para ejemplificar y que se den cuenta del momento en que corren.

Y finalmente el método anotado como @Test es la prueba unitaria. En este caso usamos el método JUnit   assertTrue que recibe como parámetro inicial un string, este string es el mensaje de error en caso de que la prueba falle, y como segundo parámetro un booleano dado por el método de la clase.

Para correr las pruebas del proyecto nos vamos a Run -> Run as… -> JUnit Tests

Al hacerlo encontramos en la parte inferior del IDE lo siguientes resultados de las pruebas:

Y si nos cambiamos a la pestaña de Consola vemos el orden en que se ejecutaron los métodos etiquetados.

Bien este fue una breve demostracion de como pueden hacer pruebas unitarias para su codigo. En posts futuros hablaremos más a fondo de los features de JUnit, de su integración con maven y de desarrollo guiado por pruebas (TDD).

Un Saludo!

Loading Comments…
more
Allowed HTML tags and attributes: <a href="" title=""> <blockquote> <code> <em> <strong>