2016-01-03 95 views
0

我周圍未初始化的恆定誤差strugging與FactoryGirlFactoryGirl未初始化不斷

NameError: uninitialized constant Usernotactivated 

我已經在我的factories.rb文件

FactoryGirl.define do 
    factory :usernotactivated do 
    name "foonotactiv" 
    email "[email protected]" 
    password "secretnot" 
    activated false 
end 
end 

以下,並在我的規格如下

it "should redirect to activation alert when it signs me in with an inactivated account" do 
user = FactoryGirl.build(:usernotactivated) 
visit login_path 
    fill_in 'Email', :with => usernotactivated.email 
    fill_in 'Password', :with => usernotactivated.password 
click_button 'Sign in' 
expect(page).to have_content 'your account is not activated' 
end 

在這兩個文件中rails_helper.rb和spec_helper.rb我已經添加了這些行:

require 'factory_girl_rails' 

我也試過

require 'factory_girl' 

不知怎的,我變「usernotactivated」與「用戶」我沒有得到這個未初始化的常量錯誤,但我不知道是否是因爲「用戶」可能是受保護的名稱。任何人都可以告訴我應該在哪裏調查此問題?你能不能告訴我rails_helper文件(我需要所有規範)和spec_helper文件之間的區別?謝謝。

回答

0

FactoryGirl建立模型的實例 - 默認情況下,名爲:usernotactivated的工廠將要建立Usernotactivated模型的實例。您的應用中沒有此模型,因此您收到錯誤消息。

相反,如果這個工廠應該生成你User模型的實例,你既可以重命名廠是:user,或類名選項添加到您的工廠:

factory :user_not_activated, class_name: "User" do 
+1

的API已經改變,語法現在是'factory:user_not_activated,class:User do' – smeshko

相關問題