TwiP

De Dos Ideas.
Revisión del 14:10 4 mar 2010 de 201.251.182.130 (discusión) (Página creada con '"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ámet…')
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

"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");
       }
   }

}