1

我已经定义了一个名为 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)

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

谢谢

4

1 回答 1

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

于 2012-05-16T19:51:20.860 回答