Escribo este post para ir apuntando las cosillas que voy aprendiendo de Capybara y Steak que son dos librerías de testeos funcionales para ruby.
testeos
Testeo paranóico de JSON con Cucumber
Estoy aprendiendo Cucumber y se que no esta pensado directamente para lo que aquí voy a exponer pero me resultó muy gratificante ver como de una manera muy sencilla se puede testear cualquier JSON devuelto por nuestros servicios REST. Se puede testear, con una sintáxis muy efectiva y clara hasta la última entrada de datos.
La importancia del testing
El jueves pasado estuve en la Conferencia de Rails en Madrid y me llamó mucho la atención, dentro de toda la controversia que creo el uso del testing en aplicaciones, lo poco que se implantaba y la poca importancia que se le daba.
Dentro de toda la polémica que suscitó había gente que dudaba de uso durante las fases de desarrollo. Lo de siempre: Falta de tiempo, desconocimiento de uso, etc. Hacen que se le de muy poca importancia.
A vueltas con las fixtures
Estamos desarrollando un proyecto en Ruby on Rails de un tamaño que empieza a
ser considerable. Para los testeos (tanto unitarios como funcionales)
estamos utilizando las fixtures y me estan surgiendo una serie de dudas
filosoficas, a ver que opiniones teneis al respecto.
En otros proyectos que he desarrollado (en .NET) he realizado los
testeos siguiendo estos pasos por cada testeo (nada nuevo):
MonoRails o .NET on Rails
Tenia que pasar. Algo tan espectacular como Ruby on Rails no podía dejar indiferente al resto del mundo informático. Sabía que algo así existiría y lo he encontrado: Un framework estilo Rails pero no sobre Ruby, sino sobre .NET. Esta plataforma la han denominado: MonoRails.
Testeando el Interfaz.
En el post anterior explique como aplicar el patrón MVC para facilitar el testeo del funcionamiento de un formulario (Preparación de un interfaz para testeo unitario).
En este post voy a intentar explicar como se realizarían dichos testeos.
Preparación de un interfaz para testeo unitario
Voy a exponer en este post un método que nos va a permitir realizar testeos unitarios sobre un formulario. Siempre ha sido la labor más complicada: realizar un testeo contra el interfaz de usuarios. Este sistema aquí descrito es una manera de programar un interfaz mediante el patrón Model-View-Controller, lo cual nos va a permitir programar testeos automatizados.
Lo primero será diseñar como va a ser el formulario a testear (propongo un ejemplo muy básico: una calculadora):

Mockeando el Interfaz
En el anterior post, explicaba como testear el interfaz despues de haberlo separado en los datos y en el controlador. Para ello codificábamos una clase (CCalculadoraTestView) que implementaba el interfaz de datos (ICalculadoraView) y que servía para pasar los datos al objeto controlador (CCalculadoraController) que es el que de verdad queremos testear.
Agilizando el desarrollo 2
Como comentaba en el anterior post, vamos a retomar un proyecto totalmente nuevo. Para ello he propuesto desarrollarlo en ámbito de las metodologías ágiles. No es que sean realmente nuevas, pero creo que en mi empresa se necesita un marco de desarrollo que de garantía de calidad al proyecto.
He ido recopilando información. Y la pongo aqui por si hay alguien interesado:
- En principio encontre este documento en español (lo cual es realmente escaso) que es muy completo y de mucha calidad:
Mockeando…
Tiene un nombre curioso y curioso es su funcionamiento y utilidad.