TwiP
"Tests with Parameters" le permite simplemente agregar parámetros a los métodos de prueba JUnit. Twip llama a los métodos con todas las combinaciones posibles de sus parámetros... o por lo menos un subconjunto razonable de los valores comunes en el caso de los Integers, etc. Se puede definir un conjunto de valores propios para su uso y/o se puede reducir los valores fijados con una expresión en asumir una anotación, por ejemplo, "> = 0". Los valores por defecto existen para los tipos primitivos (int, etc), sus wrappers de clase (Integer, etc), enum y Strings. Para otros tipos o para un conjunto de valores diferentes, se puede definir un método estático o un atributo y anotar los parámetros de su método de prueba, o puede anotar en el campo o método para inyectar los valores por tipo.
Ejemplo
TwiP requiere JUnit 4.5 and Java 1.5.
public class Persona {
int id;
String nombre;
public String getApellido() { return apellido; }
public void setApellido(String apellido) { this.apellido = apellido; }
String apellido;
public Persona(int id, String nombre, String apellido) { this.id = id; this.nombre = nombre; this.apellido = apellido; }
public Persona(int id, String nombre) { this.id = id; this.nombre = nombre; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
public String toString() { return id+" - "+nombre; }
}
import net.sf.twip.Assume;
import net.sf.twip.AutoTwip;
import net.sf.twip.TwiP;
import net.sf.twip.Values;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(TwiP.class)
public class PersonaTest {
public static final Persona[] PERSONAS = {new Persona(1, "Pablo"), new Persona(2, "coco")};
@AutoTwip public static Persona persona(int id, String nombre, String apellido) { return new Persona(id, nombre, apellido); }
@Test public void personasTest(@Values("PERSONAS") Persona persona) { System.out.println(persona.toString()); }
@Test public void personaTest(@Assume("=null") Persona persona) {
if (persona != null) { System.out.println(persona.toString()); } else { System.out.println("Control null"); } }
}