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.

Seguir leyendo “Openxava y los Test JUnit”

Un poco más sobre openxava

Ya hemos hablado anteriormente de Openxava, ahora vamos a intentar dar un acercamiento a como funciona Openxava y de que va eso del desarrollo dirigido por modelos(MDD), Model Driven Architecture,…

Partamos de los siguientes conceptos:

  • MDA es el acrónimo de Model Driven Architecture (Arquitectura Dirigida por Modelos), un concepto promovido (pero no creado) por la OMG, que propone basar el desarrollo de software en modelos especificados utilizando UML, para que, a partir de esos modelos, se realicen trasformaciones que generen código u otro modelo, con características de una tecnología particular (o con menor nivel de abstracción). MDA define un framework para procesar y relacionar modelos. 
  • Un modelos es una descripción de todo o parte de un sistema escrito en un lenguaje bien definido. El hecho que un modelo este escrito en un lenguaje bien definido tiene una gran importancia para MDA, ya que supone que el modelo tienen asociadas una sintaxis y semántica bien definidas. Esto permite la interpretación automática de transformadores o compiladores de modelos, fundamentales en MDA.
  • Un Componente de Negocio consiste en todos los artefactos de software relacionados con un concepto de negocio. Componente de Negocio es tan solo una forma de organizar el software.

Según Javier Paniza en su libro “Aprende Openxava con ejemplos” básicamente, MDD establece que únicamente se ha de desarrollar la parte del modelo de una aplicación, y el resto se generará a partir de este modelo.

Desafortunadamente, el uso de MDD es muy complejo. Requiere de una gran cantidad de tiempo, pericia y herramientas. Aun así la idea tras MDD sigue siendo muy buena, por lo tanto OpenXava toma esa idea de una manera simplificada. Usa simples clases de Java con anotaciones para definir el modelo, y no usa generación de código, en vez de eso toda la funcionalidad de la aplicación es generada  dinámicamente en tiempo de ejecución.

Ya sabemos de que va esto, pero vamos a entrar en el dominio de OpenXava:

Seguir leyendo “Un poco más sobre openxava”

Desarrollo de aplicación de facturación en 15 minutos con openxava 2/2

En el post anterior vimos como configurar todo el entorno para crear nuestra primera aplicación en Openxava.

Ahora vamos a escribir entidades. En realidad deberíamos pensar un poco y diseñar el modelo de como sería la aplicación. En este caso nos hemos basado en el libro “Aprende Java con ejemplos” de Javier Paniza (Aquí los primeros capítulos)

Crear la primera entidad

Para desarrollar la aplicación solo hay que añadir entidades.

Seguir leyendo “Desarrollo de aplicación de facturación en 15 minutos con openxava 2/2”