test rails ruby-on-rails ruby ruby-on-rails-3 testing testunit

ruby-on-rails - rails test



Rspec vs. TestUnit (6)

Estoy comenzando la fase de planificación para crear un paquete de pruebas para mi aplicación Rails 3.0.8. Estoy tratando de decidir qué marco / gemas de prueba usar. Normalmente prefiero mantener la convención de Rails tanto como sea posible. Sin embargo, esto significa usar TestUnit. Hay muchos marcos de prueba competitivos para elegir que se crearon como una alternativa a TestUnit. ¿TestUnit ha mejorado a lo largo de los años, o no es un candidato muy bueno?

También he oído hablar de muchas cosas buenas sobre rspec. ¿Están rspec y TestUnit cerca en términos de funcionalidad, o rspec soplo TestUnit fuera del agua?

Cualquiera sea el marco que elija, preferiría tener una buena base de soporte (muchos usuarios y documentación), facilidad de uso / simplicidad y un futuro duradero.


La respuesta es cuestión de gustos, utiliza ambos en un proyecto y encuentrate a ti mismo que prefieres. (I do Test :: Unit, RSpec tiene mucho azúcar para mí).

Actualización 2014 : como Ruby 2.x tiene MiniTest incorporado, sugiero que compruebe MiniTest :: Spec, que es una extensión BDD simple. Puede mezclar los bloques "describir" y "eso" para estructurar muy bien los contextos de prueba. También proporciona emparejamientos "must_be .." si desea más que assert .


Podrías usar rspec con gemas de cucumber y webrat que hacen una gran combinación, si tienes un sitio web grande. Al principio será engorroso, pero más adelante será un gran beneficio.

Puedes ver los siguientes episodios de transmisiones en ráfaga para obtener más información sobre esas gemas:
155 Comenzando con el pepino
156 Webrat
157 RSpec Matchers y macros
159 Más sobre pepino

También hay otras gemas como el capybara que es relativamente nuevo y prometedor, pero la verdad es que no lo probé.



Si está empezando su viaje con la aplicación Rails de prueba, le recomendaría que empiece a hacerlo con TestUnit. Puede encontrar un curso muy bueno sobre la mejor aplicación de rieles de prueba y las mejores prácticas en http://www.codeschool.com/courses/rails-testing-for-zombies Si tiene más experiencia en lo que respecta a las pruebas, puede probar RSpec.


Este artículo de Ruby Inside , especialmente si sigues los enlaces y lees los comentarios, ofrece una discusión bastante completa sobre los méritos relativos de Test :: Unit y RSpec. Un diferenciador clave parece ser que:

  • las personas que tienen clientes no técnicos tienen más probabilidades de ver RSpec y Cucumber de manera más favorable;
  • es más probable que otros prefieran sistemas más directos como Test :: Unit.

También vea esta parte del Tutorial Rails de Michael Hartl para una comparación de RSpec y Cucumber.


Tanto Test :: Unit como Rspec son soluciones muy buenas. En cuanto a mí, prefiero usar RSpec en mi proyecto de Rails, porque tiene muchas soluciones automáticas como autotest, destacando la sintaxis, comandos de acceso directo como rake spec y otras cosas que hacen que usar test easer. Pero en mis scripts simples de rubí utilizo Test :: Unit: es muy ligero y estable cuando no se necesitan pruebas complejas (integracionales y otras)