1. ホーム
  2. ruby-on-rails

[解決済み] spec/rails_helper.rbはspec/spec_helper.rbとどう違うのですか?必要ですか?

2023-02-21 16:44:09

質問

Railsチュートリアルの2回目をやっています。このように入力すると

rails generate integration_test static_pages

私は spec/rails_helper.rb そして spec/spec_helper.rb だけでなく spec/spec_helper.rb

今、私がテストを実行すると、前回これを行ったときよりも長く(より "verbose")、遅くなります。 2 つのファイルの違いは何なのか、また、何か間違ったことをしたのかどうか疑問に思っています。 また、この2つのファイルから rails_helper.rb ファイルを削除する方法はありますか?

どのように解決するには?

rspec-rails 3が生成するもの spec_helper.rbrails_helper.rb . spec_helper.rb はRailsに依存しないspec(libディレクトリにあるクラスのspecなど)用です。 rails_helper.rb は、Railsに依存するspecを指定します (Railsプロジェクトでは、ほとんどまたはすべてのspecがそうです)。 rails_helper.rb が必要です。 spec_helper.rb . ですから rails_helper.rb を必要とします(そして spec_helper.rb ではなく) を仕様に追加してください。

Railsに依存しないspecを、Railsに依存しないことを強制し、単体で実行したときにできるだけ高速に動作させたい場合は spec_helper.rb ではなく rails_helper.rb を使うことができます。しかし、とても便利なことに -r rails_helper の中に .rspec というように、各スペックファイルでどちらかのヘルパーを必要とするのではなく、そのようなアプローチが一般的になることは間違いないでしょう。

spring preloaderを使用している場合、各クラスは一度だけロードする必要があり を必要とする1つのspecを実行するだけでも、springはクラスをイーガーにロードします。 spec_helper のみを要求することにそれほど大きな価値はありません。 spec_helper のみを要求することにそれほど価値はありません。

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