Utilizar mockConfig en test de Grails

Necesitaba realizar test unitarios en una aplicación que estamos desarrollando y una de las clases que quería testear accedía, por medio del ConfigurationHolder a datos que debían ser cargados en el Config.groovy Una búsqueda rápida en google arrojó varios resultados sobre como utilizar la magia del metaClass de groovy para mockear manualmente los objetos y [...]

Programar Groovy y Grails con gedit (Ubuntu)

Si bien he probado varios entornos de trabajo, a lo largo del tiempo, para desarrollar en Grails, siempre vuelvo a mi viejo amor: gedit (gnome-editor)) Por defecto, no tiene soporte para el lenguaje Groovy, pero es fácilmente configurable, e incluso sin necesidad de permisos de adminsitrador, permitiéndonos configurar nuestor ambiente de trabajo, sin modificar la [...]

Haciendo código i18n sólido con Grails y aprovechando Spring

Hace algún tiempo estamos desarrollando una aplicación considerablemente grande, ejecutada e implementada en diferentes partes del mundo. Hasta ahora, Portugal, España, Italia, Brasil, México, próximamente UK. Justamente por esas características necesitábamos tener los contenidos en diferentes idiomas y seleccionar aspectos del sitio en base al país de origen. En otras palabras, nos interesaba decirle a [...]

Mockear la misma clase que se esta testeando para realizar pruebas unitarias

En el artículo anterior comenté que es aconsejable aislar en diferentes métodos aquellos fragmentos de código que no pueden ser testeados unitariamente (por ejemplo las consultas con Hibernate Criterias, o Hql) de tal manera que puedan ser mockeados y de esa manera poder testear el resto del código. Pero cuando intenté llevar a la práctica [...]

Como hacer pruebas unitarias con Grails que tienen método que acceden a la base de datos

Una de las tareas mas importantes, y a la vez que más esquivamos hacer son los famosos tests, tan necesarios para las metodologías ágiles que nos gusta seguir. En grails hay principalmente dos tipos de tests. Unitarios y de Integración. Los primeros se ejecutan muy rápido pero no cuentan con todo el entorno de grails [...]

Utilizar packages en grails… una necesidad?

Todos sabemos que en Java es una muy buena práctica la utilización de packages, a tal punto que para casi todo programador de Java es casi una obligatoriedad. El concepto de package en si es muy bueno, casi todos los lenguajes modernos lo tienen de una u otra manera, con un nombre u otro. Se [...]

Encode / decode String en base64 con Grails.

Bueno, tambien de la mano con mi problema de cookies, tenía que codificar un string a base64, y luego decodificarlo. Esto por suerte no fue complicado, ya que groovy nos facilita bastante la tarea, pero igualmente esta bueno escribirlo aquí para tenerlo documentado. El método que utilizo lo saqué del blog” Stash’s Development Encodear un [...]

El orden si importa: Setear cookies, luego hacer redirects (Grails).

Mi problema del día era muy simple, tenia que poder crear una cookie persistente (una que no se borrara al cerrar el explorador) y luego redirigir a otra página. El primer problema fue como escribir una cookie en Grails. Por suerte no hay mucho misterio en esto, grails no nos ayuda en nada, así que [...]

Utilizar UrlMappings para hacer parecer que ciertos Controllers se encuentran agrupados en un directorio (Grails)

Un requisito de casi todo sitio web actual es que tenga Friendly Urls. Esto es que en lugar de tener una url como http://mi-pagina.com/verproducto.php?id=4 los parámetros, e incluso la página, se codifiquen en la misma url, quedando algo como http://mi-pagina.com/producto/video-grabadora Este tipo de url tiene varias ventajas, entre ellas que es más linda de ver [...]

Restar días laborales a una fecha

El problema que teníamos era muy simple. Nos daban una fecha, y nosotros debíamos calcular una nueva fecha que esté X cantidad de días laborales antes. Solo considerábamos como día no laboral los sábados y los domingos. Los feriados no era necesario contemplarlos. Buscando un poco en internet encontramos el blog digital:pardoe en el cual [...]