Realizar pruebas unitarias con JUnit en Java
Para poder realizar correctamente las pruebas unitarias de nuestras clases, debemos utilizar los JUnit, que nos permiten evaluar si el comportamiento de los métodos de nuestra clase son correcto o no. JUnit son un conjunto de bibliotecas creadas por Erich Gamma y Kent Beck, estas las podemos encontrar en la página principal de JUnit.
Descargamos la utilidad T2 del framework T2-jar version x.x.x.x.jar
Descargamos estas librerias y las copiamos dentro de la carpeta pluggins del Eclipse. Yo en principio las dejo aquí, también las podemos dejar en otra ubicación, siempre teniendo en cuenta que el Eclipse las tendrá que utilizar.
Ahora, generamos una nueva clase llamada ThingTeste.java, y haremos que herede de TestCase de JUnit. Una vez tenemos hecha la clase, creamos los métodos que queremos probar, y mediante un assert haremos que el sistema valide.
En este caso el código seria el siguiente:
- Descargando las librerias:
Descargamos la utilidad T2 del framework T2-jar version x.x.x.x.jar
Descargamos estas librerias y las copiamos dentro de la carpeta pluggins del Eclipse. Yo en principio las dejo aquí, también las podemos dejar en otra ubicación, siempre teniendo en cuenta que el Eclipse las tendrá que utilizar.
- Creando un proyecto de ejemplo y cargar las librerias:
Ahora, generamos una nueva clase llamada ThingTeste.java, y haremos que herede de TestCase de JUnit. Una vez tenemos hecha la clase, creamos los métodos que queremos probar, y mediante un assert haremos que el sistema valide.
En este caso el código seria el siguiente:
Una vez tenemos las 2 clases creadas, arrancamos la clase MyTest.java como JUnit:import java.io.File;
import junit.framework.*;
public class ThingTester extends TestCase
{
public ThingTester (String name)
{
super (name);
}
public void testGetName() throws Exception
{
File myFile = new File("c:\file.txt");
assertEquals("file1.txt", myFile.getName());
}
}
---------------------
import org.junit.Test;
public class MyTest {
@Test
public void test1() {
// llamamos a T2 y le pasamos el nombre de nuestra clase:
Sequenic.T2.Main.Junit(ThingTester.class.getName());
}
}
Una vez lo tenemos arrancado, podemos comprobar las pruebas unitarias desde la herramienta de JUnit:
Podemos comprobar como falla la validación de la unidad, y nos informa de donde está el error. Mediante la herramienta T2, no hace falta que creemos los métodos de comprobación, ya que el própio framework se encarga de ir a buscar los métodos de la clase y ponerlos a prueba. Podemos generar los métodos de prueba mediante la segunda opción que comento a continuación.
En el IDE de Eclipse, nos dirigimos a File -> New -> JUnit Test Case, y desde allí generamos una nueva clase de test para una clase existente.
En mi caso, genero una clase nueva, por ejemplo Rectangle.java:
- Creando un JUnit Test Case
En el IDE de Eclipse, nos dirigimos a File -> New -> JUnit Test Case, y desde allí generamos una nueva clase de test para una clase existente.
En mi caso, genero una clase nueva, por ejemplo Rectangle.java:
public class Rectangle {
// State variables.
private int height;
private int width;
// Constructors
Rectangle() {
height = 0;
width = 0;
}
Rectangle(int h, int w) {
height = h;
width = w;
}
// Readers
public int getH() {
return height;
}
public int getW() {
return width;
}
public int getA() {
return height * width;
}
// Writers
public void setH(int h) {
height = h;
}
public void setW(int w) {
width = w;
}
public String toString() {
return "Rectangle: height=" + height + "; width=" + width + "; area=" +
getA() + ".";
}
} // End of Rectangle class
Este ejemplo esta sacado de http://www.cs.unc.edu/~weiss/COMP401/s08-27-JUnitTestExample.doc
Una vez tenemos la clase creada, desde el IDE de Eclipse:
Esto es una cosa que vale mucho la pena dedicar algunas horas. En el futuro un proyecto de pruevas te puede quitar de muchos apuros.
ReplyDelete