Diferencia entre revisiones de «TwiP»
m (→Test de entidad propia)  | 
				m  | 
				||
| Línea 1: | Línea 1: | ||
| − | "Tests with Parameters"   | + | [[TwiP]] ("Tests with Parameters") permite agregar parámetros a los métodos de prueba [[JUnit]] de forma simple. [[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, Strings, etc.    | 
| − | + | Se puede definir un conjunto de valores propios para su uso y/o se puede reducir los valores fijados con la anotación "Assume", por ejemplo, @Assume("> = 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.  | |
| − | + | == Requerimientos  ==  | |
| + | |||
| + | [[TwiP]] requiere [[JUnit]] 4.5 and [[Java]] 5.    | ||
== Test de tipos primitivos  ==  | == Test de tipos primitivos  ==  | ||
| Línea 12: | Línea 14: | ||
import org.junit.Test;  | import org.junit.Test;  | ||
import org.junit.runner.RunWith;  | import org.junit.runner.RunWith;  | ||
| − | |||
@RunWith(TwiP.class)  | @RunWith(TwiP.class)  | ||
| Línea 41: | Línea 42: | ||
         System.out.println(flag1);  |          System.out.println(flag1);  | ||
     }  |      }  | ||
| − | |||
}  | }  | ||
</code>  | </code>  | ||
| − | == Test   | + | == Test con un objeto propio ==  | 
| − | + | ==== El objeto Persona ====  | |
<code java5>  | <code java5>  | ||
public class Persona {  | public class Persona {  | ||
| − |      int id;  | + |      private int id;  | 
| − |      String nombre;  | + |      private String nombre;  | 
     public String getApellido() {  |      public String getApellido() {  | ||
| Línea 69: | Línea 69: | ||
         this.apellido = apellido;  |          this.apellido = apellido;  | ||
     }  |      }  | ||
| − | |||
     public Persona(int id, String nombre) {  |      public Persona(int id, String nombre) {  | ||
| Línea 96: | Línea 95: | ||
         return id+" - "+nombre;  |          return id+" - "+nombre;  | ||
     }  |      }  | ||
| − | |||
}  | }  | ||
</code>    | </code>    | ||
| + | ==== La prueba JUnit de Persona ====  | ||
<code java5>  | <code java5>  | ||
import net.sf.twip.Assume;  | import net.sf.twip.Assume;  | ||
| Línea 107: | Línea 106: | ||
import org.junit.Test;  | import org.junit.Test;  | ||
import org.junit.runner.RunWith;  | import org.junit.runner.RunWith;  | ||
| − | |||
@RunWith(TwiP.class)  | @RunWith(TwiP.class)  | ||
| Línea 137: | Línea 135: | ||
== Ver también  ==  | == Ver también  ==  | ||
| + | *[http://twip.sourceforge.net/ TwiP - Tests with Parameters]  | ||
| − | + | [[Category:JUnit]]  | |
Revisión del 20:30 4 mar 2010
TwiP ("Tests with Parameters") permite agregar parámetros a los métodos de prueba JUnit de forma simple. 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, Strings, etc.
Se puede definir un conjunto de valores propios para su uso y/o se puede reducir los valores fijados con la anotación "Assume", por ejemplo, @Assume("> = 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.
Contenido
Requerimientos
TwiP requiere JUnit 4.5 and Java 5.
Test de tipos primitivos
import net.sf.twip.Assume;
import net.sf.twip.TwiP;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(TwiP.class) public class tiposTest {
   @Test
   public void intTest(int numero) {
       System.out.println(numero);
   }
   @Test
   public void integerTest(Integer  numero) {
       System.out.println(numero);
   }
   @Test
   public void doubleTest(Double  numero) {
       System.out.println(numero);
   }
   @Test
   public void stringTest(@Assume("=null") String string) {
       System.out.println("| " + string + " |");
   }
   @Test
   public void booleanTest(boolean flag1) {
       System.out.println(flag1);
   }
}
Test con un objeto propio
El objeto Persona
public class Persona {
private int id;
private 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;
   }
}
La prueba JUnit de Persona
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, "nombre1"), new Persona(2, "nombre2")};
   @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");
       }
   }
}