[Ror-es] ¿Qué librerías de testing y alternativas a Test:Unit usáis?

Roberto M. Oliva
Thu Feb 18 10:25:42 GMT 2010


Xavier Noria wrote:
> Mi recomendacion es que empieces con lo que viene en Rails: Test::Unit
> y fixtures.
>
> Es tu primer proyecto, no te lies aqui. La gente usa otras cosas
> cuando ya ha pasado por esto, y como veras van en distintas
> direcciones, no hay solucion unica. Tambien es importante que alguna
> gente pasa por aqui y NO cambia. Yo mismo uso Test::Unit y a mucho
> estirar shoulda.
>
> No te compliques en tu primer proyecto en este tema. La mayor
> documentacion y soporte builtin los vas a tener para Test::Unit y
> fixtures, es lo que Rails soporta y mantiene de fabrica.
> _______________________________________________
> Proudly free of Ruby Forum crossposting since 01/07/2009
> Ror-es mailing list
> 
> 
>
>
>   
Hola!

Estoy totalmente de acuerdo contigo en utilizar Test::Unit en un 
principio. En realidad, no se necesita más. Todas las otras librerías 
son mejoras o interpretaciones de cómo hacer testeos, pero un buen uso 
de Test::Unit es suficiente para realizar testeos unitarios satisfactorios.
En lo que no estoy totalmente de acuerdo es en el uso de fixtures. 
Nosotros empezamos a utilizarlas en un proyecto y al final las 
deshechamos por un motivo muy simple: Los datos de base de un testeo 
deben ser aislados a dicho testeo.
Me explico: Para realizar un testeo se debe de partir de unos datos base 
para comprobar que el objeto de nuestro testeo se comporta como 
esperamos en base a esos datos. El problema de las fixtures es que se 
comparten para todos los testeos de la aplicación haciendo que, a la 
larga, la base inicial de los datos se vaya modificando para adaptarla a 
nuevos testeos según se van añadiendo. Haciendo que el manteniemiento de 
las fixtures sea un infierno.
No se si me he explicado. También es cierto que nosotros nos encontramos 
con este problema en la version 1.2.6 de Rails y que posiblemente esto 
lo hayan mejorado, pero se nos quitaron totalmente las ganas de utilizar 
fixtures y pasamos a utilizar un sistema de factorias de objetos propio. 
(del tipo de Machinist o Factory-girl).

Nosotros ahora utilizamos para los nuevos proyectos: rspec, cucumbre, 
factory-girl. Pero los antiguos los seguimos manteniendo con Test::Unit 
y bastante contentos. Utilizar testeos ayuda a dormir tranquilo y a 
mejorar la aplicación más rápidamente.

Un saludo
Roberto M. Oliva