2012-12-08 70 views
7

我試圖創建一個使用FactoryGirl我的Rails應用程序我的第一個控制器測試,但我不斷獲取以下錯誤:的Rails 3:未初始化不斷FactoryGirl

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看起來升ike this:

group :development, :test do 
    gem 'sqlite3' 
    gem 'rspec-rails' 
    gem 'capybara', '1.1.2' 
    gem 'factory_girl_rails', '>= 4.1.0', :require => false 
end 

因爲FactoryGirl不存在,我可能會缺少什麼?

回答

19

你可以忘記要求factory_girlspec_helper.rb

+0

這樣一個簡單的錯誤。謝謝您的幫助。 – Dofs

+0

我建議你刪除':require => false'。然後,您可以在'rails console'中使用'FactoryGirl',並使用'rails generate factory_girl:model'生成模型。 – Hauleth

+0

當gem'factory_girl_rails'安裝時,它也會安裝'factory_girl'作爲依賴。那麼爲什麼它必須包含在這個文件中呢?你的建議對我有用,我只是好奇地想知道這是怎麼回事!謝謝! –

相關問題