Comment est Spec / rails helper.rb différente de spec/spec helper.rb? Ai-je besoin?

je fais le tutoriel sur les Rails pour la deuxième fois. Quand j'entre ce

rails generate integration_test static_pages

je reçois spec/rails_helper.rb et spec/spec_helper.rb au lieu de spec/spec_helper.rb

maintenant, quand je fais mes tests, ils sont plus longs (plus "verbeux") et plus lents que lorsque j'ai fait cette dernière fois. Je me demande quelle est la différence entre les deux fichiers, et si j'ai fait quelque chose de mal. Aussi, y a-t-il un moyen de se débarrasser du fichier rails_helper.rb sans toucher tout?

75
demandé sur Dave Schweisguth 2014-06-10 19:45:06

1 réponses

rspec-rails 3 génère spec_helper.rb et rails_helper.rb . spec_helper.rb est pour les spécifications qui ne dépendent pas de Rails (comme les spécifications pour les classes dans le répertoire lib). rails_helper.rb est pour les spécifications qui dépendent des Rails (dans un projet de Rails, la plupart ou la totalité d'entre eux). rails_helper.rb nécessite spec_helper.rb . Donc non, ne vous débarrassez pas de rails_helper.rb ; exigez-le (et non spec_helper.rb ) dans vos spécifications.

si vous voulez que vos spécifications non dépendantes des Rails non-Rail-dépendant, et pour courir aussi vite que possible quand vous les exécutez par eux-mêmes, vous pourriez exiger spec_helper.rb plutôt que rails_helper.rb dans ceux. Mais il est très pratique de -r rails_helper dans votre .rspec plutôt que d'exiger un helper ou l'autre dans chaque fichier spec, de sorte que ce est sûr d'être une approche populaire.

si vous utilisez le préchargeur à ressort, chaque classe n'a besoin d'être chargée qu'une seule fois, et classes de charges à ressort avec enthousiasme, même si vous ne lancer une seule spécification qui nécessite spec_helper , de sorte qu'il n'y a pas autant de valeur à exiger seulement spec_helper dans certains fichiers.

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

112
répondu Dave Schweisguth 2017-05-23 12:26:19