web-dev-qa-db-ja.com

spec / Rails_helper.rbはspec / spec_helper.rbとどう違うのですか?必要ですか?

Railsチュートリアルを2回実行しています。これを入力すると、

Rails generate integration_test static_pages

spec/Rails_helper.rbの代わりにspec/spec_helper.rbspec/spec_helper.rbを取得します

これで、テストを実行すると、前回実行したときよりも長く(「冗長」に)遅くなります。 2つのファイルの違いは何か、また何か間違ったことをしたかどうかは疑問です。また、すべてを台無しにすることなくRails_helper.rbファイルを削除する方法はありますか?

81
user3417583

rspec-Rails 3はspec_helper.rbおよびRails_helper.rbを生成します。 spec_helper.rbは、Railsに依存しない仕様(libディレクトリのクラスの仕様など)用です。 Rails_helper.rbは、Rails(Railsプロジェクト、ほとんどまたはすべて)に依存する仕様向けです。 Rails_helper.rbにはspec_helper.rbが必要です。いいえ、Rails_helper.rbを削除しないでください。仕様で(spec_helper.rbではなく)要求する。

Railsに依存しない仕様がRailsに依存しないことを強制し、それらを単独で実行するときに可能な限り高速に実行する場合は、それらにspec_helper.rbではなくRails_helper.rbを要求できます。ただし、各スペックファイルで1つのヘルパーを必要とするよりも-r Rails_helper.rspecを使用すると非常に便利です。

スプリングプリローダーを使用している場合、各クラスは1回だけロードする必要があり、 spec_helper を必要とする単一の仕様のみを実行する場合でも、スプリングはクラスを積極的にロードするため、それほど価値はありません一部のファイルでspec_helperのみを要求する場合。

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

116