2013-03-26 62 views
0

这里是我的工厂/ admin_user.rb代码宝石'factory_girl_rails”错误未初始化的常量FactoryGirl(NameError)

FactoryGirl.define do 
    factory :admin_user do |admin| 
    admin.sequence(:email) { |n| "admin#{n}@example.com" } 
    admin.password "123456789" 
    admin.password_confirmation { |u| u.password } 
    end 
end 

当我运行这段代码我得到这个错误

未初始化的常量FactoryGirl( NameError)

任何帮助?

+0

“define”代码不应该直接运行。你如何在测试中使用工厂? – 2013-03-26 08:32:42

+0

我正在使用像这样FactoryGirl.create(:admin_user).should be_valid – 2013-03-26 09:20:11

回答

1

问题应该是宝石没有加载。您可以检查FactoryMirl是否在Gemfile中正确定义。并且检查ENV是否正确,因为FactoryGirl应该在测试环境下运行。

添加 也许测试生成器设置不正确?您可以检查,如果你已经把以下内容config/application.rb

config.generators do |g| 
    g.test_framework :rspec, 
    fixtures: true, 
    view_specs: false, 
    helper_specs: false, 
    routing_specs: false, 
    controller_specs: true, 
    request_specs: true 
    g.fixture_replacement :factory_girl, dir: "spec/factories" 
end 

约夹具的最后一行应该是你的情况很重要。然后你可以尝试删除你的黑客设置。

+2

我通过在spec_helper.rb中声明require'factory_girl_rails'来解决它 – 2013-03-26 10:22:56

+0

不错,你解决了它。但这很奇怪,通常你不需要那样做。 FactoryGirl会自动加载spec/factories.rb或spec/factories/blahblah.rb – 2013-03-26 10:35:29

+0

@ChZeeshan,检查我添加的部分。 – 2013-03-26 11:38:02

相关问题