2012-05-27 129 views
0

我是新来的Rails应用程序使用RSpec的,我不能让RSpec的看到我的模型:(RSpec的无法加载我加载ActiveModel非模型类

我在Gemfile

添加以下行
group :development, :test do 
    gem 'rspec-rails' 
end 

rails generate rspec::install 

安装它,然后我在app/models/目录中创建一个facebook_page.rb文件,它不能加载ActiveModel一个

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

而现在我想测试它,所以我加了facebook_page_spec.rbspec/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的子类吗? 我该如何解决这个问题?

提前许多感谢,最好

弗鲁瓦

回答

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

+1

嘿!你非常有帮助,非常感谢,我错过了要求“spec_helper”。我会马上看看Cattr! – geoffroy

相关问题