ruby rspec cucumber shoulda testunit

ruby - ¿Prueba:: la unidad sigue siendo relevante en los rieles?



rspec cucumber (5)

Estoy aprendiendo Rails de la manera antigua. Leyendo el desarrollo web ágil con Rails (3ra edición) como punto de partida. Actualmente estoy en el capítulo que enseña Pruebas. También estoy al tanto de otro marco de pruebas de BDD como RSPec. Así que me preguntaba si los marcos como RSpec, Cucumber, Shoulda deberían reemplazar la necesidad de conocer / usar Test :: Unit? ¿Ambos son relevantes por derecho propio y se utilizan para diferentes propósitos?

ACTUALIZACIÓN: Ya que soy nuevo en Pruebas, también me encantaría recibir comentarios sobre qué recursos son útiles para mojarme los pies con diferentes marcos.

¡Gracias!


El propio DHH es uno de los ávidos usuarios de Test :: Unit y evita a RSpec / Cucumber por su relativa complejidad.

Respeto a los muchachos que están detrás y estoy a favor de la experimentación, pero la proliferación de rSpec y Cucumber me entristece.

RSpec me ofende estéticamente sin beneficio perceptible por su complejidad agregada sobre la prueba / unidad.

Pepino no tiene sentido para mí a menos que tenga clientes que lean las pruebas. ¿Por qué construirías un analizador de prueba específico para inglés?

Lo importante es, por supuesto, que hacemos que las personas realicen pruebas, por lo que las herramientas no deberían importar demasiado. Pero la complejidad añadida todavía me molesta.

"algo.Debería ser_real ''lo resume bastante bien el argumento estético. Esa llamada me duele los ojos vs "afirmar algo".

Si estás interesado, sigue leyendo el twitter a partir de estos twits.


Hay muchas personas a quienes todavía les gusta Test :: Unit, y hasta cierto punto, es una preferencia personal. Sin embargo, en general, encontrará mucha más actividad en el frente de RSpec. Lo realmente genial se hace con RSpec y Cucumber, así que si no tienes una preferencia personal, probablemente me saltaré la Prueba :: Unidad. Sin embargo, debe estar lo suficientemente familiarizado con él para leer las pruebas de otra persona que están escritas con él, pero no prevería que eso sea un problema.


Rspec es un marco de prueba completamente separado. Shoulda es una mejora del marco integrado de Rails, Test :: Unit. Si está usando Shoulda, está usando Test :: Unit pero con más capacidades y una sintaxis más sencilla y legible.

He intentado Rspec y Shoulda y para mí, Shoulda gana sin duda alguna. Me gusta mucho mejor. Pero eso puede ser una cuestión de gusto.

Tenga en cuenta que puede utilizar pepino con Shoulda .

¿Otros recursos? Recomiendo las gemas ZenTest y RedGreen. ZenTest proporciona autotest, que le permite ejecutar sus pruebas automáticamente cada vez que cambia un archivo. Es una gran ayuda.

Con respecto a los accesorios frente a las fábricas, si necesita configurar un conjunto de objetos interrelacionados en los que está probando ambos lados o una relación padre-hijo y / o probar relaciones de muchos a muchos, los accesorios funcionan mucho mejor. En realidad, ni siquiera estoy seguro de que puedas hacer eso con las fábricas. Así que no descartes los accesorios, tienen sus usos.


Solo pensé en publicar una actualización de 2012:

De los three libros introductorios main y current (que se pueden usar con Rails 3.2 sin más que algunas modificaciones menores) en RoR, dos de ellos utilizan Rspec (con una breve mención de Test :: Unit) y uno de ellos está planeando en incluso moar Rspec para la próxima edición , por lo que está claro quién será el ganador de esta "batalla" por ahora

Y permítanme citar selectivamente dhh:

Lo importante es, por supuesto, que hacemos que las personas realicen pruebas, por lo que las herramientas no deberían importar demasiado.

Revisión en 2014:

Minitest ahora ha reemplazado Test :: Unit como predeterminado en las versiones actuales de Rails. Personalmente creo que merece una mirada más cercana en comparación con su antecesor por varias razones:

  1. Su estado por defecto.
  2. Mejor soporte para capibara y selenio, una gran parte debido a gemas como this
  3. Relativamente ligero
  4. Mayormente compatible con versiones anteriores de Test :: Unit

¡El mundo ha cambiado! Compruebe hacia abajo y upvote @prusswan

Creo que Test :: Unit sigue siendo relevante a pesar de que hay un gran despliegue publicitario en torno a BDD y otras herramientas de prueba.

Dicho esto, si está preparado para ello, podría pasar por alto la Prueba de aprendizaje :: Unidad y comenzar con algo como RSpec y Shoulda de inmediato, pero hay algo que decir sobre el seguimiento a través de los ejemplos en el Libro de Desarrollo Web Agile para ver de donde vinieron las ideas de BDD

Sigo usando Test :: Unit para algunos proyectos ya que viene con Rails y sigue siendo un marco de prueba muy bueno.

En pocas palabras, no creo que esté obsoleto, pero ya no es la vanguardia. BDD es un cambio de paradigma de prueba, especialmente si comienzas a usar Cucumber y Webrat, pero es fantástico una vez que entras en él. Shoulda es la forma más fácil de hacer la transición, así que comenzaré con Test :: Unit, luego pasaré a Shoulda, luego probaré a RSpec y Cucumber.

¡Estás probando o al menos interesado en probar! Esa es la mejor parte. Al final, no importa lo que uses, siempre y cuando estés satisfecho con él.

¡Buena suerte!