gpt4 book ai didi

testing - FactoryGirl 并获取所有关联的属性哈希

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

我有两个相关模型——Customer,它有一个Address。这些是我的工厂:

FactoryGirl.define do
factory :customer do
address
end
end

FactoryGirl.define do
factory :address do
company_name "MyString"

end
end

在我的 Controller 规范中,我尝试为客户获取一个包含地址属性的哈希值……这对我不起作用。

第一次尝试是使用 attributes_for(:customer),但这会忽略任何关联(如文档中所述)。谷歌搜索后,我发现了使用 FactoryGirl.build(:customer).attributes.symbolize_keys 的建议,其中应该包括关联参数。但对我来说不是,我只是得到 {"id"=>…, "created_at"=>…, "updated_at"=>…}。但是 customer.address.attributes 输出了正确的散列,因此关联似乎是正确的。

所以,我有一个正确的客户和一个有效的地址,我想得到一个包含所有属性的散列,这样我就可以测试 e。 G。在我的 Controller 规范中创建客户。

post :create, {customer: !?!?!?}

为了完成,这是我的模型:

class Customer < ActiveRecord::Base
has_one :address, foreign_key: :entity_id

validates_presence_of :address
accepts_nested_attributes_for :address
end

class Address < ActiveRecord::Base
belongs_to :customer, foreign_key: :entity_id
end

最佳答案

这在 FactoryGirl 中是不支持的。在这里查看此问题:https://github.com/thoughtbot/factory_girl/issues/359

我认为这不是什么大问题。只需这样写:

FactoryGirl.attributes_for(:customer, address: FactoryGirl.attributes_for(:address))

关于testing - FactoryGirl 并获取所有关联的属性哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20729808/

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