domingo, 27 de enero de 2008

Data Driven Test (II)

En una de mis ultimos posts había tocado el tema de los JUnit parametrizados, y había presentado una solución simple; ahora, experimentando un poco, me he encontrado con una solución un poco mas sencilla y como en lo personal prefiero las cosas sencillas aquí la presento.

La solución es sencilla, consiste en crear un constructor parametrizado y un método que ejecute la lógica de la prueba. Pongamoslo en código:


public class TestParametrizado {
private int parametro = 0;

public TestParametrizado(int parametro) {
//Es necesario que el nombre del método este en la llamada a super
super("metodoParametrizado");
this.parametro = parametro;
}

public void metodoParametrizado() {
; //Lógica de metodos parametrizados
}
}


Ahora viene la pregunta del millon, no podemos correr este test con los métodos regulares, por la simple y sencilla razón de que JUnit intentara crear una instancia nueva con un constructor sin parametros, en resumen, no funcionará.

Para solucionar este pequeño inconveniente vamos a transformar nuestro TestCase en un test suite.


//Este método debe estar en la misma clase que lo anterior
public static Test suite() {
TestSuite suite = new TestSuite();

suite.addTest(new TestParametrizado(4));
suite.addTest(new TestParametrizado(5));
suite.addTest(new TestParametrizado(7));

return ts;
}

No hay comentarios: