JUnit: test Parametrizados

By | 03/11/2012

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 );
    }
 
}
Compartir esto:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *