为什么我的FactoryGirl定义无法正常工作?

时间:2012-05-16 19:47:45

标签: ruby-on-rails factory-bot

我已经定义了一个名为admin_user的工厂,但是当我尝试使用它时出现错误:

工厂/ user_factory.rb:

FactoryGirl.define do
  factory :user do
    email "example_user@example"
    password "password"
  end

  factory :admin_user do
    email "admin_user@example.com"
    password "admin_password"
  end
end

authentication_steps.rb:

Given /^I have a valid admin account$/ do
  @user = FactoryGirl.create(:admin_user)
end

运行该步骤时出现以下错误:

uninitialized constant AdminUser (NameError)

是否有一些我没有正确遵循的语法?

由于

1 个答案:

答案 0 :(得分:1)

您应该指定:user_admin的类:

FactoryGirl.define do
  factory :admin_user, :class => User do
    email "admin_user@example.com"
    password "admin_password"
  end
end

解释:

当您使用factory :admin_user do时,FactoryGirl会自动查找 AdminUser 类,该类不存在。
因此,您必须通过添加:class => User来告诉它使用哪个类。