Pregunta

Yo soy la configuración de una aplicación rails y acabo de terminar de hacer algunas pruebas unitarias y mi amigo me dijo que al parecer los accesorios no son más fresco y de personas están usando RSpec o shoulda.Me preguntaba lo que los beneficios reales son el uso de estos otros kits de herramientas.Cualquier información se agradece.

-fREW

¿Fue útil?

Solución

RSpec y similares marcos de herramientas diseñadas para ayudar en behavior Driven Development.No sólo son una bonita manera de escribir las pruebas, aunque no ayudar con eso.

Hay un montón de información en la BDD aquí: http://behaviour-driven.org/ Y la wikipedia: http://en.wikipedia.org/wiki/Behavior_Driven_Development

Hay demasiados beneficios a la lista aquí, así que me gustaría recomendar la exploración de ese sitio un poco.

Otros consejos

Yo personalmente prefiero Shoulda a RSpec.Me parece que Shoulda tiene menos de la magia de la sintaxis de RSpec.Mi problema con RSpec es que sí, es muy fácil de leer cuando leí en voz alta, pero cuando me pongo a escribir, hmmmm, yo no estoy seguro ¿ una afirmación dada debe ser por escrito. Prag Dave explica mejor el problema que yo.Él también le gusta Shoulda y tiene un par de ejemplos.

Hay dos cosas aquí:

La primera cosa es lo que marco a utilizar para la escritura de ensayos, especificaciones.Aquí se puede elegir entre Test::Unit, RSpec, Shoulda, y así sucesivamente.La elección es si quieres hacer tradicional de TDD (Test::Unit) o si se prefiere la alternativa maneras de pensar acerca de la especificando el comportamiento defendido por los desarrolladores como David Chemlinsky (RSpec y, en cierta medida Shoulda).

La segunda cosa es cómo manejar los datos de prueba.Hay Rieles y accesorios de alternativas diseñado con otros objetivos, tales como el FixtureReplacement plugin.Antes de Rails 2.0 accesorios tenido un importante y bien documentado prácticas de problemas.Muchas de las cuestiones prácticas que se fija en Rails 2.0.Sin embargo, los partidos pueden conducir a la prueba de acoplamiento y algunas de las alternativas que se trate de evitar esto.

RSpec es la forma más poderosa, porque es mucho más fácil leer y escribir pruebas.También es muy elegante cuando el uso de mocks y stubs, un concepto que será muy útil una vez que el uso de ellos en sus pruebas.Probarlo en una simple aplicación de prueba (NO RIELES!) y verás cómo elegante, sus especificaciones están frente a la norma equivalente de la prueba.

Echa un vistazo a Josh Susser del El Gran Marco de Prueba de Baile-off para una comparación de la popular Ruby marcos de las pruebas.

Si usted está construyendo una aplicación grande y no tienes un equipo que todos son realmente buenos en la escritura desacoplado de código que puede ser probado con caja negra pruebas y están preparados para abrazar completamente el uso de/depuración de un montón de burla y comprobantes, que no van por la Fábrica de la carretera.

Dondequiera que usted lea acerca de cómo Impresionante Fábricas Se verá un poco de advertencia acerca de cómo las fábricas podría no ser factible en una aplicación de gran tamaño debido a que son un poco más lento que el de los accesorios.

Pero "un poco más lento" es realmente órdenes de magnitud más lento.

Las fábricas no son significativamente más fáciles de código de partidos que el uso de etiquetas de identificación, siempre y cuando usted mantenga los accesorios organizados.Y en algunos casos las fábricas son más difíciles de depurar.

Sólo esta noche me convertí en una fábrica de accesorios, y el tiempo de ejecución de un archivo de prueba que se utilizó fue de 65 a 15 segundos, aunque sólo el 15% de las pruebas en que archivo de prueba de uso de la fábrica.

Si utiliza minitest puede ejecutar las pruebas en orden aleatorio;esto rápidamente revelar ningún dato de acoplamiento entre las pruebas.(no estoy seguro si rspec tiene la opción randomize pedido de prueba)

Test::Unit es bueno para pequeñas aplicaciones.Pero hay un montón de beneficios para el uso de los marcos de las pruebas como Shoulda o RSpec, e.g.contextos!!

No veo Shoulda y RSpec en un relación.Yo uso Shoulda como un sustituto de RSpec cuando se trata de la sola afirmación de la prueba.Me gusta mucho el Shoulda de una sola línea, pero la escritura de los dispositivos de comparación es mucho más fácil en RSpec.Así que mi consejo es utilizar las diferentes herramientas de pruebas en el lugar apropiado.

Usted puede utilizar las pruebas de marco como el Pepino que es incluso más rápido que RSpec..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top