Ruby on rails 3 gem&x27';工厂“女孩”轨道;错误取消初始化常量FactoryGirl(NameError)

Ruby on rails 3 gem&x27';工厂“女孩”轨道;错误取消初始化常量FactoryGirl(NameError),ruby-on-rails-3,factory-bot,Ruby On Rails 3,Factory Bot,这是我的工厂/admin_user.rb代码 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 当我运行这个代码时,我得到了这个错误 未

这是我的工厂/admin_user.rb代码

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)


有任何帮助吗???

问题不应加载。您可以检查文件中是否正确定义了FactoryGirl。并检查ENV是否正确,因为FactoryGirl应该在测试ENV下运行

添加 可能测试生成器设置不正确?您可以检查是否已将以下内容放入
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

关于夹具的最后一行对您的案例应该很重要。然后您可以尝试删除hack设置。

不应直接运行“定义”代码。如何在测试中使用factory?我使用的是类似于FactoryGirl.create(:admin_user)。应该是有效的。我通过在spec_helper.rbNice中声明require'factory_girl_rails'解决了这个问题,您已经修复了它。但这很奇怪,通常你不需要这么做。FactoryGirl将自动加载spec/factories.rb或spec/factories/blahblah。rb@ChZeeshan,检查我添加的部分。