JUnit: test Parametrizados

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 :)
Java  JUnit 

Ver también