NOTA: Comencé este artículo a la vez que profundizaba en la creación de test con Grails y me he ido encontrado cosas que me dejaron confuso y el post ha quedado un poco raro, pero he decidido dejarlo como originalmente lo escribí. Buscando por la red encontré distintas formas de implementar test, supongo que anclados a diferentes versiones del framework, y esto me lío un poco. Por este motivo no pongo código concreto, sino teoría de como Grails afronta los distintos "tipos de test". Para resolver mis dudas voy a usar código, la mejor herramienta :)
========================================================================================
Buenas a tod@s,
aquí vuelvo dispuesto a cumplir mis propósitos de vacaciones y, para ello, nada mejor que ponerse a programar :D Y aprender Groovy, Grails y todo lo que se ponga por delante.
Ayer estuve googleando en busca de recursos sobre TDD + Grails y no encontré gran cosa (también soy consciente que TDD no va anclado a un lenguaje sino que como técnica es agnóstica a estos). Aquí pongo unas diapositivas que fue de lo más explicativo que pude ver:
Por tanto, basándome en el último post de @ialcazar en @farmerdev, voy a empezar aprendiendo a hacer test en Grails. Conociendo las herramientas que nos ofrece para ello, sus ventajas y carencias. En la presentación anterior algo se puede ver sobre las opciones pero yo recomiendo el libro de @nacho_brito totalmente en español con un capítulo sobre el tema (y, básicamente, el guión que voy a seguir).
- Test unitarios: Son aquellos que tiene como objetivo probar, de forma aislada, el comportamiento de un método de una clase. Si tiene varios "escenarios de ejecución" se encarga solo de uno de ellos. Las características se pueden agrupar en las siglas FIRST (Fast, Independent, Repeatable, Small y Transparent). En Grails, cuando se ejecutan las pruebas unitarias de un método, no se inyectan ninguno de los métodos dinámicos con los que se cuenta en producción. El desarrollador es responsable de crear y gestionar los objetos que intervienen.
- Test de integración: Las pruebas de integración son aquella que combinan varias piezas del sistema y las testean en conjunto. En Grails, como se tiene en cuenta el contexto, los componentes tendrán acceso al entorno completo que, en test unitarios, no se levantaba.
- Test funcionales: Este tipo de test atraviesan verticalmente el sistema, ya que pueden ir de extremo a extremo del mismo, para probar una funcionalidad concreta desde el cliente hasta la base de datos. También le podríamos llamar Test de Sistema pero bueno, nos quedamos con "funcional" porque así aparece en la literatura Grails. Básicamente, se trata de probar desde la capa de presentación algún comportamiento concreto del sistema. Grails no tiene "integrado" una herramienta para tal propósito pero se recomienda el uso de Canoo Web Test instalable mediante plugin.

Por favor Kini...estaré espectante de todo lo que escribas sobre Grails. Me quiero meter en el tema pero por pereza lo voy dejando. Con este tipo de post sin duda allanas el camino a procrastinadores como yo (que mal suena eso).
Gracias de nuevo por tus aportaciones y por la mención en el post....
Go ahead!
Gracias Isra! :)
En parte hago estos post para obligarme a investigar y profundizar porque sino, ya sabes, lo voy dejando. Seguiré que hoy he conseguido ir haciendo pruebas y avanzando ;)
Por cierto, procrastinador suena mal depende quién lo interprete, en mi caso, mente sucia, no suena del todo desagradable xD
Un abrazo!