所以我有一个工厂来创建item
。哪个可以包含一个或多个line_items
。
describe Item do
let(:user) { create :user }
let(:currency) { create :currency }
subject(:item) { create :item, currency: currency, create_user: user, update_user: user }
创建具有有效记录验证的项目时失败:
ActiveRecord::RecordInvalid: Validation failed: You have not entered any data and cannot save a blank form., You have not entered any data and cannot save a blank form.
这是因为在创建项目时没有创建line_item吗?
在我的工厂,每当我创建一个line_item时,我都会创建一个项目:
FactoryGirl.define do
factory :line_item do
item
create_user factory: :user
update_user factory: :user
end
end
答案 0 :(得分:0)
确保您的模型已通过工厂中的模型验证进行验证。请粘贴你的模特。请尝试下面的代码。它没有经过测试,因此您必须根据您的模型进行医生处理。
FactoryGirl.define do
factory :user do
sequence(:username) { |n| "foo#{n}"}
password "password"
email {"#{username}@example.com"}
end
factory :item do
name "item1"
user
end
factory :line_item do
name "line_item1"
item
end
end