web-dev-qa-db-fra.com

En quoi spec / Rails_helper.rb est-il différent de spec / spec_helper.rb? En ai-je besoin?

Je fais le Rails Tutorial pour la deuxième fois. Quand j'entre dans ce

Rails generate integration_test static_pages

Je reçois spec/Rails_helper.rb et spec/spec_helper.rb au lieu de simplement spec/spec_helper.rb

Maintenant, quand je lance 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. Existe-t-il également un moyen de se débarrasser du Rails_helper.rb fichier sans tout gâcher?

81
user3417583

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 des 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é). Rails_helper.rb a besoin spec_helper.rb. Alors non, ne te débarrasse pas de Rails_helper.rb; l'exiger (et non spec_helper.rb) dans vos spécifications.

Si vous souhaitez que vos spécifications non dépendantes de Rails imposent qu'elles ne dépendent pas de Rails et s'exécutent aussi vite que possible lorsque vous les exécutez seules, vous pouvez avoir besoin de spec_helper.rb plutôt que Rails_helper.rb dans ceux-là. Mais il est très pratique de -r Rails_helper dans votre .rspec plutôt que d'exiger un assistant ou l'autre dans chaque fichier de spécifications, ce qui 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 le printemps charge les classes avec impatience même si vous n'exécutez qu'une seule spécification qui nécessite spec_helper , il n'y a donc pas autant de valeur à ne demander que spec_helper dans certains fichiers.

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

116
Dave Schweisguth