gpt4 book ai didi

ruby-on-rails - 使用 FactoryGirl 构建一个 json stub

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:02 24 4
gpt4 key购买 nike

我尝试使用工厂构建 json,但是当我尝试构建 build 时它是空的。

下面是Factory类。

require 'faker'

FactoryGirl.define do
factory :account do |f|
f.name {Faker::Name.name}
f.description {Faker::Name.description}
end

factory :accjson, class:Hash do
"@type" "accountResource"
"createdAt" "2014-08-07T14:31:58"
"createdBy" "2"
"disabled" "false"
end
end

下面是我正在尝试构建的方式。

hashed_response = FactoryGirl.build(:accjson)        
expect(account.to_json).to eq(hashed_response.to_json);

但是我的 hashed_response 似乎总是空的 object

最佳答案

使用FactoryGirl 来创建json 就像使用航天飞机去剥菠萝一样。在你足够努力之后,你会做到这一点,但这不是创造穿梭机的目的。

如果您在测试中重复使用此哈希结构,请将其存储在 yaml 文件中并创建一些辅助方法来读取它(您可以将它们放在 spec/spec_helpers 中)。

您的代码不起作用的原因:

FactoryGirl 使用method_missing 魔法来赋值。在您的代码中,您不会尝试执行任何方法,因为您只是列出字符串,因此不会触发 method_missing 魔法。

使用 FactoryGirl 的方法(阅读上面的段落!):

为了完整起见,有一种方法可以用 FG 做到这一点,但不是很漂亮:

factory :accjson, class: OpenStruct do
send :'@type', "accountResource"
createdAt "2014-08-07T14:31:58"
createdBy "2"
disabled "false"
end

hashed_response = FactoryGirl.build(:accjson).marshal_dump.to_json

关于ruby-on-rails - 使用 FactoryGirl 构建一个 json stub ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25205545/

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