02 julio 2009

Integración de JUnit y Netbeans

Hacer pruebas de funcionamiento de los diversos componentes de un proyecto es una parte vital del ciclo de desarrollo, consumiendo grandes cantidades de tiempo y recursos en su realización, es por ello que debemos buscar alternativas que nos permitan automatizar estas pruebas, por lo menos a nivel unitario (cada componente).

Una de las propuestas más conocidas es usar el framework JUnit, para escribir y ejecutar pruebas unitarias en proyectos Java.

En esta entrada vamos a ver como integrar y configurar JUnit versión 4, aprovechando las facilidades que brinda un IDE como Netbeans.

La forma en la que JUnit trabaja es indicàndole una serie de entradas y sus salidas esperadas y luego compara los resultados de la ejecuciòn con los valores esperados para encontrar inconsistencias.

En Junit contamos con la clase Assert que es la encargada de realizar todas las comprobaciones que necesitemos mediante una serie de mètodos que validan condiciones especìficas. Entre los mètodos con los que contamos estan:
AssertEquals: Comprueba si dos objetos son iguales, en sus distintas versiones siempre recibe un valor esperado, un valor obtenido y un rango de variación o delta.

asserFalse: Comprueba que la condición pasada como parámetro sea falsa, su contraparte es el mètodo assertTrue

asserNotNull: Verifica que el objeto pasado como parámetro no sea nulo. Su contraparte es el método assertNull

assertSame: Verifica si dos referencias apuntan al mismo objeto. Su contraparte es el mètodo assertNotSame

Fail(): Hace que falle la prueba.

Ejemplo:
Bueno, empecemos nuestro ejemplo creando un nuevo proyecto de aplicaciòn en Netbeans (File > Nuevo Proyecto >Java > java Application) al que le pondremos "test_Junit".

Ahora creamos una clase llamada "Validador" que tendrá métodos para verificar que un paràmetro sean mayor, menor o igual a otro paràmetro. Una posible implementación podría ser la siguiente:

public class Validador {
public Validador(){};
public boolean menorQue(int a, int b){ return a < b;}
public boolean mayorQue(int a, int b){ return a > b;}
public boolean igualQue(int a, int b){ return a==b;}
}


Ahora debemos dar click derecho sobre el icono de la nueva clase y seleccionar Tools > create JUnit tests, donde saldrá una pantalla donde sólo debemos indicar el nombre, paquete y las opciones de generación de código, al final damos click en el botón "aceptar"

Se habrá creado una nueva clase llamada ValidadorTest en el paquete Test (por default) la cual contiene todos los métodos "assert" para probar cada método de nuestra clase, por lo que solo debemos modificar estos métodos para hacer las pruebas que queramos.

Ya modificadas las pruebas solo falta ejecutarlas, para eso nos vamos al menú "Run" y seleccionamos "Test Project", después de un momento obtenemos los resultados de la prueba:



Como ves, no es cosa del otro mundo y permite avanzar mucho más rápido y seguro dado que no tienes que estar parando y haciendo pruebas por tu cuenta cada vez que hacemos una modificación o una nueva función, solamente debemos definir nuestra serie de pruebas desde el inicio e ir ejecutando los test en cada actualización y listo.

Fuentes:
http://junit.org/
http://www.netbeans.org/kb/docs/java/junit-intro.html
http://es.wikipedia.org/wiki/JUnit
http://www.jtech.ua.es/tutoriales/apuntes/sesion-junit-apuntes.htm
http://www.lab.dit.upm.es/~lprg/material/apuntes/pruebas/aceptacion.htm
http://www.javahispano.org/contenidos/es/introduccrion_a_junit/

Expandir/Contraer este Post


1 comentario:

Anónimo dijo...

me parece q tenes un error.
Ami me funciono usar el test for existing class.
Ahi le indique la clase y me creo todos los metodos solos... me parece que te equivocaste al poner el nombre nada mas pero muy buen tutorial