with matchers example effective bot ruby-on-rails testing rspec rspec-rails rspec3

ruby on rails - matchers - ¿Cómo es spec/rails_helper.rb diferente de spec/spec_helper.rb? ¿Lo necesito?



shoulda-matchers (1)

Estoy haciendo el Tutorial de Rails por segunda vez. Cuando entro a esto

rails generate integration_test static_pages

Obtengo spec/rails_helper.rb y spec/spec_helper.rb lugar de solo spec/spec_helper.rb

Ahora cuando ejecuto mis pruebas, son más largas (más "verbosas") y más lentas que cuando lo hice esta última vez. Me pregunto cuál es la diferencia entre los dos archivos, y si hice algo mal. Además, ¿hay alguna manera de deshacerse del archivo rails_helper.rb sin ensuciar todo?


rspec-rails 3 genera spec_helper.rb y rails_helper.rb . spec_helper.rb es para especificaciones que no dependen de Rails (como las especificaciones para las clases en el directorio lib). rails_helper.rb es para especificaciones que sí dependen de Rails (en un proyecto de Rails, la mayoría o todas). rails_helper.rb requiere spec_helper.rb . Así que no, no te rails_helper.rb de rails_helper.rb ; lo requiere (y no spec_helper.rb ) en sus especificaciones.

Si desea que sus especificaciones no dependientes de rieles obliguen a que no dependan de los rieles, y que se ejecuten lo más rápido posible cuando las ejecuta por sí mismo, puede necesitar spec_helper.rb lugar de rails_helper.rb en esas. Pero es muy conveniente para -r rails_helper en su .rspec lugar de requerir un ayudante u otro en cada archivo de especificación, por lo que seguramente será un enfoque popular.

Si está utilizando el precargador de muelles, cada clase solo necesita cargarse una vez, y la primavera carga las clases con entusiasmo, incluso si solo ejecuta una única especificación que requiera spec_helper , por lo que no hay tanto valor en requerir solo spec_helper en algunos archivos. .

Fuente: https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files