0

我是在 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.rbinspec/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"参加考试了吗?

附言。这段代码是错误的:

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 回答
0

对我来说,它不包括require 'rails_helper'在规范的开头。

于 2020-12-26T16:39:06.023 回答