我已经阅读了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将用户对象传递到产品工厂。
答案 0 :(得分:1)
假设您已拥有用户工厂(即factory :user do
),则可以在:product
工厂中添加以下行:
association :user
这将自动创建一个用户工厂(如定义)并将其分配给您的产品。
在测试中创建对象时,仍然可以执行以下操作:
FactoryGirl.create(:produce, user: some_user)
以便分配不同的用户变量,因为Factory会从您刚添加的行中看到关联。
希望这有帮助。