Openxava y los Test JUnit

En anteriores post ya hemos desarrollado un poco con Openxava. Pero el ciclo no esta completo, debemos testear nuestra aplicación y lo mínimo (mínimo, mínimo) debe ser al menos una serie test funcionales (si son automáticos mejor). Así que pare ello utilizaremos JUnit.

JUnit es un conjunto de bibliotecas  que son utilizadas en programación para hacer pruebas unitarias de aplicaciones Java.

OpenXava nos proporciona una clase llamada ModuleTestBase que por medio de HTMLUnit permite automatizar las pruebas como si las estuviésemos haciendo desde el navegador.

Creando una prueba unitaria para Openxava

Vamos a partir de que tenemos un modulo Customer que funciona. Openxava es sencillo y para crear un test solo tenemos que crear una clase llamada CustomerTest dentro del paquete org.openxava.invoicing.test La clase de test debe extender a ModuleTestBase.

Así que allá vamos:

package org.openxava.invoicing.test;
import org.openxava.tests.*;
public class CustomerTest extends ModuleTestBase{
public CustomerTest(String testName) {
 super(testName, 
 "Invoicing", 
 "Customer"); 
 }
}

Esto es solo el principio, ahora tenemos que crear el test propiamente dicho.

En el test lo que haremos será crear un nuevo cliente, lo buscaremos, lo modificaremos y por último para no dejar rastro lo borraremos.

Para simular acciones de usuario tenemos métodos como execute() o setValue() y para poder verificar el estado de la interfaz podemos utilizar assertValue() o assertMessage(). Aquí dejo el link para la API, aunque siempre podemos utilizar Ctrl+espacio para autocompletar.

Este método es la prueba unitaria debemos ponerla dentro de la clase CustomerTest para poder ejecutarla.

public void testCreateReadUpdateDelete() throws Exception { 
 // Create
 execute("CRUD.new"); 
 setValue("number", "77"); 
 setValue("name", "JUNIT Customer"); 
 setValue("address.street", "JUNIT Street"); 
 setValue("address.zipCode", "77555"); 
 setValue("address.city", "The JUNIT city"); 
 setValue("address.state", "The JUNIT state");
 execute("CRUD.save"); 
 assertNoErrors(); 
 assertValue("number", ""); 
 assertValue("name", ""); 
 assertValue("address.street", ""); 
 assertValue("address.zipCode", ""); 
 assertValue("address.city", ""); 
 assertValue("address.state", ""); 
 
 // Read
 setValue("number", "77"); 
 execute("CRUD.refresh"); 
 assertValue("number", "77"); 
 assertValue("name", "JUNIT Customer"); 
 assertValue("address.street", "JUNIT Street"); 
 assertValue("address.zipCode", "77555"); 
 assertValue("address.city", "The JUNIT city"); 
 assertValue("address.state", "The JUNIT state");
// Update
 setValue("name", "JUNIT Customer MODIFIED"); 
 execute("CRUD.save"); 
 assertNoErrors(); 
 assertValue("number", ""); 
 assertValue("name", ""); 
 
 // Verify if modified
 setValue("number", "77"); 
 execute("CRUD.refresh"); 
 assertValue("number", "77"); 
 assertValue("name", "JUNIT Customer MODIFIED"); 
 
 // Delete
 execute("Invoicing.delete"); 
 assertMessage("Customer deleted successfully"); 
 }

Ejecutar las pruebas desde Eclipse

Antes de ejecutar la prueba tenemos que añadir un pequeño cambio, debemos indicarle a JUnit que estamos utilizando PostgreSQL, así que debemos añadir el controlador JDBC a Java Builth Path de la siguiente manera.

 

Solo tenemos que ponernos encima de la clase y pinchar sobre Run As-> JUnit Test y aparecerá la nueva vista con los tests.

 

Con esto ya tenemos nuestra prueba, ahora nos queda realizar pruebas para cada uno de los módulos. para así llegar a tener baterías (suite) de tests.

Parcialmente tomado de libro “Aprende Openxava con Ejemplo”

Anuncios

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s