RSpec无法加载我的非ActiveModel模型类

时间:2012-05-27 17:44:14

标签: rspec rspec-rails

我在Rails应用程序中使用RSpec是新手,我无法通过RSpec查看我的模型:(

我在Gemfile

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

并用

安装
rails generate rspec::install

然后我在facebook_page.rb目录中创建了一个app/models/文件,它的不是一个ActiveModel

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的子类吗? 我该如何解决?

非常感谢,最好

弗鲁瓦

2 个答案:

答案 0 :(得分: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 :(得分:0)

对我来说,规范开头没有包含 require 'rails_helper'

相关问题