gpt4 book ai didi

ruby-on-rails - 如何创建两个对象属于同一个父对象的工厂?

转载 作者:行者123 更新时间:2023-11-28 20:24:31 25 4
gpt4 key购买 nike

我有以下工厂:

factory :user do
name 'Henk'
email 'foo@bar.co'
password 'foobar'
password_confirmation { |u| u.password }
end

factory :photo do |ph|
user
ph.subtitle 'abc'
ph.photo { fixture_file_upload( Rails.root.join( 'spec', 'fixtures', 'files', 'test-file-one.png' ), 'image/png') }
end

factory :ad do |ad|
user
name 'Kip'
reason 'Ik wil gewoon hele mooie nieuwe, om een beetje van te eten.'
price 69.15
end

照片和广告都属于用户,但是照片也属于广告。这是一个问题,因为每当我测试 Photo 和 Add 之间的关系时,用户验证都会正确地提示拥有该电子邮件的用户已经在使用中。我如何告诉 rspec 再次使用同一个用户,而不是尝试使用同一个工厂创建另一个用户?

最佳答案

确保使用相同父级的最简单方法是在测试期间将父级传递到工厂创建中。例如:

@user = FactoryGirl.create(:user)
@photo = FactoryGirl.create(:photo, user: @user)
@ad = FactoryGirl.create(:ad, user: @user)

这将确保 photoad 使用相同的 user 父对象,从而避免您一直遇到的验证问题。

关于ruby-on-rails - 如何创建两个对象属于同一个父对象的工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com