Je fais le didacticiel Rails pour la deuxième fois. Quand j'entre dans ça
rails generate integration_test static_pages
Je reçois spec/rails_helper.rb
et spec/spec_helper.rb
au lieu de justespec/spec_helper.rb
Maintenant, quand j'exécute mes tests, ils sont plus longs (plus "verbeux") et plus lents que lorsque je l'ai fait la dernière fois. Je me demande quelle est la différence entre les deux fichiers et si j'ai fait quelque chose de mal. En outre, existe-t-il un moyen de se débarrasser du rails_helper.rb
fichier sans tout gâcher?
ruby-on-rails
testing
rspec
rspec-rails
rspec3
user3417583
la source
la source
Réponses:
rspec-rails 3 génère
spec_helper.rb
etrails_helper.rb
.spec_helper.rb
est pour les spécifications qui ne dépendent pas de Rails (telles que les spécifications pour les classes dans le répertoire lib).rails_helper.rb
est pour les spécifications qui dépendent de Rails (dans un projet Rails, la plupart ou la totalité d'entre eux).rails_helper.rb
exigespec_helper.rb
. Alors non, ne vous en débarrassez pasrails_helper.rb
; l'exigent (et nonspec_helper.rb
) dans vos spécifications.Si vous voulez que vos spécifications non dépendantes de Rails vous imposent qu'elles ne dépendent pas de Rails et qu'elles s'exécutent aussi vite que possible lorsque vous les exécutez elles-mêmes, vous pouvez exiger
spec_helper.rb
plutôt querails_helper.rb
celles-ci. Mais c'est très pratique-r rails_helper
dans votre.rspec
plutôt que d'exiger un assistant ou l'autre dans chaque fichier de spécification, c'est donc une approche populaire.Si vous utilisez le préchargement de ressort, chaque classe n'a besoin d'être chargée qu'une seule fois, et spring charge les classes avec empressement, même si vous n'exécutez qu'une seule spécification qui l'exige
spec_helper
, il n'y a donc pas autant de valeur à exiger quespec_helper
dans certains fichiers.Source: https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files
la source
Vous pouvez toujours combiner toutes vos configurations dans le spec_helper et ne nécessiter que le spec helper dans le fichier d'aide rails.
Ce n'est en aucun cas "idéal" puisque à la fin de la journée, vous faites manuellement ce "refactor" mais SI cela vous dérange vraiment. sachez que c'est à vous de décider comment structurer le
Rspec.configure
et apportez simplement toutes les configurations spécifiques aux rails
la source