Rails 3: 未初始化常量 FactoryGirl

7
我正在尝试使用FactoryGirl为我的Rails应用程序创建第一个控制器测试,但我一直收到以下错误:
uninitialized constant FactoryGirl

我的Factories.rb文件如下所示:

FactoryGirl.define do
  factory :offer, class: "Offer" do |f|
    f.title     "Some title"
    f.description   "SomeDescription"
  end
end

我的控制器测试代码如下:
require 'spec_helper'

describe OffersController do
 def valid_session
    {}
  end

  describe "GET index" do
     before { 
        @offer = FactoryGirl.create(:offer)
     }

    it "assigns all offers as @offers" do    
      get :index, {}, valid_session
      assigns(:offers).should eq([@offer])
    end
  end
end

我的 Gemfile 文件如下:

group :development, :test do
  gem 'sqlite3'
  gem 'rspec-rails'
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '>= 4.1.0', :require => false
end
< p>由于缺少FactoryGirl,我可能会错过什么?< /p>
1个回答

19

你可能在 spec_helper.rb 中忘记了引用 factory_girl


这是一个如此简单的错误。感谢您的帮助。 - Dofs
我建议您删除 :require => false。这样,您就可以在 rails console 中使用 FactoryGirl 并使用 rails generate factory_girl:model 生成模型。 - Hauleth
当安装 gem 'factory_girl_rails' 时,它也会安装 'factory_girl' 作为依赖项。那么为什么它必须被包含在这个文件中呢?你的建议对我很有帮助,但我只是好奇这到底是什么!谢谢! - Nick Res

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接