gpt4 book ai didi

rspec - 使用工厂女孩创建 has_many 关系的特征

转载 作者:行者123 更新时间:2023-12-03 04:54:57 32 4
gpt4 key购买 nike

我正在寻找干燥我的测试套件。尝试创建一个特征来表示父工厂上 has_many 关系的特定值。理想情况下,这些值将从单独的工厂创建。

我想做这样的事情:

factory :room do
trait :bathroom do
type :bathroom
end
end

factory :house do
trait :one_bathroom do
association, :rooms, factory: [:room, :bathroom]
end
end

如果 house 和 room 之间的关系是 1 到 1,上面的方法应该有效。但是 House 和 Room 是一对多的关系,所以 House 拥有一系列 Room。根据这个例子,我希望创建一栋拥有一系列房间且只有一间浴室的房子。

有什么想法吗?

最佳答案

要创建一对多关系,您可以这样做:

factory :room do
factory :bathroom do
type :bathroom
end
factory :bedroom do
type :bedroom
end
end

factory :house do
ignore do
num_bathrooms 0
num_bedrooms 0
end

trait :two_bathrooms do
num_bathrooms 2
end

trait :three_bedrooms do
num_bedrooms 3
end

after(:create) do |house, evaluator|
create_list(:bathroom, evaluator.num_bathrooms, house: house)
create_list(:bedroom, evaluator.num_bedrooms, house: house)
end
end

查看此 link 的关联部分中的最后一个示例了解更多详情。

关于rspec - 使用工厂女孩创建 has_many 关系的特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22624175/

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