0

我已经阅读了 FactoryGirl 文档,但我似乎无法弄清楚这一点。我知道这一定很简单。

这是我的设置:

Rails 3.2.6
User has_many Products


FactoryGirl.define do
  factory :product do
    sequence(:identifier, 1000) {|n| "ABC#{n}" }
  end
end

这会失败,因为必须有一个与产品关联的 user_id。在我的测试中,我在登录期间创建了一个用户。所以我的测试可以访问用户对象。我只是不知道如何使用 FactoryGirl 将用户对象传递给产品工厂。

4

1 回答 1

1

假设您已经有一个用户工厂(即factory :user do),您可以在您的工厂中添加以下行:product

association :user

这将自动创建一个用户工厂(如定义)并将其分配给您的产品。

但是,当您在测试中创建对象时,您仍然可以执行以下操作:

FactoryGirl.create(:produce, user: some_user)

为了分配不同的用户变量,因为工厂从您刚刚添加的行中看到了关联。

希望这可以帮助。

于 2012-06-23T21:37:47.260 回答