2

仕様を実行しようとすると、初期化されていない定数エラーが発生します。私の仕様は次のようになります。

describe Facility do 
  it { should have_many(:units) }
  it { should have_many(:facilities_users) }
  it { should have_many(:administrators) }
  it { should have_many(:facility_employees) }
end

エラーは次のとおりです。 facility_spec.rb:1:in `<top (required)>': uninitialized constant Facility (NameError)

私は確かに施設モデルを持っているので、なぜこれが起こるのかわかりません。

4

4 に答える 4

2

rake specの代わりに実行してみてくださいrspec spec。しかし、どちらも機能する場合があります。

bundle exec rspec spec動作しない場合は、 またはを試してくださいbundle exec rake spec

ソース: rspec を実行しようとすると、初期化されていない定数が表示されます。

于 2012-10-18T17:01:48.697 に答える
0

ファイルの先頭に次を追加します。

require 'spec_helper'
于 2012-10-18T16:17:47.667 に答える
0

「rspec-rails」ジェムを使用している場合は、実行します

rails g rspec:install

これによりファイルが作成されspec/spec_helper.rbます (ActiveRecord を使用していない場合は、spec セットアップが正しく実行されるように編集する必要があります)。

その後、spec ファイルの先頭にヘルパーが必要であることを確認します。

require 'spec_helper'

これがうまくいかない場合は、次のような問題がさらにある可能性があります。

  1. lib/ ディレクトリの下のファイルをテストしようとしています。この場合、このファイルが環境 (config/application.rb -> autoload_paths) と共にロードされていることを確認するか、明示的に要求してください。
  2. 定数は実際には存在しません。名前空間内にあるか、タイプミスである可能性があります。
于 2012-10-18T17:34:46.287 に答える
0

spec ファイルで、Facilityクラスが定義されているファイルを必要とします。

于 2012-10-19T04:41:06.677 に答える