0

Rails アプリで RSpec を使用するのは初めてで、RSpec にモデルを表示させることができません :(

次の行を追加しましたGemfile

group :development, :test do
  gem 'rspec-rails'
end

そしてそれをインストールしました

rails generate rspec::install

次に、ディレクトリにfacebook_page.rbファイルを作成しましたが、これは ActiveModelではありませんapp/models/

class FacebookPage
  class << self
    # define class variables
    attr_accessor :app_id
    attr_accessor :app_secret
  end
end

そして今、私はそれをテストしようとしているので、ディレクトリに追加しfacebook_page_spec.rbましspec/models/

describe FacebookPage do
  describe ".app_id" do
    it "should return the FB_APP_ID environment variable and thus not be null" do
      FacebookPage.app_id.should_not be_empty 
    end
  end
end

しかし、私が走るとき

bundle exec rake spec

次のエラーが表示されます。

/home/geoffroy/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec ./spec/models/facebook_page_spec.rb
/home/geoffroy/dev/mybandpage/spec/models/facebook_page_spec.rb:1:in `<top (required)>': uninitialized constant FacebookPage (NameError)

RSpec がモデル ファイルをロードしていないようです。ActiveRecord のサブクラスではないからでしょうか。どうすれば解決できますか?

よろしくお願いします。

ジェフロワ

4

2 に答える 2

5

rails generate rspec::install(二重コロン)にタイプミスがあります。使用してみてくださいrails generate rspec:install。また、次のコマンドを使用してテストを実行してみてくださいbundle exec rspec spec

あなたrequire "spec_helper"はあなたのテストに参加しましたか?

ps。このコードは間違っています:

class FacebookPage
  class << self
    # define class variables
    attr_accessor :app_id
    attr_accessor :app_secret
  end
end

基本的に、この例ではシングルトンクラスでインスタンス変数を定義しているので、次のアプローチを使用してみてください:http: //apidock.com/rails/Class/cattr_accessor

于 2012-05-27T21:34:32.563 に答える