Me encuentro seguido con la necesidad de realizar pruebas pasando a mis test case ciertos parametros.
Este simple ejemplo permite ver como JUnit lo resuelve.
Para esto debes anotar la clase con @RunWith(Parameterized.class)
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
/**
* Ejemplo de test Parametrizado
* Ejecutar un test que reciba dos parametros y los compare en tres oportunidades
* @author Gustavo Peiretti
*
*/
@RunWith(Parameterized.class)
public class TestExampleParameterized {
private final String string1;
private final String string2;
/**
* Cada parametro sera cargado con los valores devueltos por {@link #data()}
* @param s1
* @param s2
*/
public TestExampleParameterized(final String s1, final String s2) {
this.string1 = s1;
this.string2 = s2;
}
/**
* Parametros que seran utilizados para instanciar el test
* @return
* @throws Exception
*/
@Parameters
public static List data() throws Exception {
final List datos = new ArrayList();
datos.add(new String[] { "A", "A" });
datos.add(new String[] { "B", "BX" });
datos.add(new String[] { "C", "C" });
return datos;
}
/**
* Ejecuta el test tantas veces como datos existan en {@link #data()}
*/
@Test
public void testComparar() {
System.out.println("Evaluando: "+ string1 + " = " + string2 );
Assert.assertTrue("No son iguales " + string1 + " != " + string2, string1 == string2 );
}
}
Hi! If you find my posts helpful, please support me by inviting me for a coffee :)