mrz*_*asa 13 ruby json factory rspec ruby-on-rails
我正在创建一个接受JSON数据的API,我想为它提供测试数据.
是否有类似JSON数据的工厂?我想在对象和JSON中提供相同的数据,以便我可以检查导入是否按预期工作.
JSON有严格定义的结构,所以我不能打电话FactoryGirl(:record).to_json.
Jes*_*ott 28
在这种情况下,我将为我想要导入的JSON创建fixture文件.这样的东西可以工作:
json = JSON.parse(File.read("fixtures/valid_customer.json"))
customer = ImportsData.import(json)
customer.name.should eq(json["customer"]["name"])
Run Code Online (Sandbox Code Playgroud)
我还没有看到你可以使用FactoryGirl设置属性,然后将其导入JSON并导入它的东西.您可能需要创建一个映射器,它将获取您的Customer对象并以JSON格式呈现它,然后导入它.
Mar*_*rez 10
根据Jesse的建议,现在你可以使用Rails 5 file_fixture(docs)
我只是用一个小帮手来阅读我的json灯具:
def json_data(filename:)
file_content = file_fixture("#{filename}.json").read
JSON.parse(file_content, symbolize_names: true)
end
Run Code Online (Sandbox Code Playgroud)
小智 5
实际上,您可以使用 factorygirl 执行以下操作。
factory :json_data, class: OpenStruct do
//fields
end
FactoryGirl.create(:json_data).marshal_dump.to_json
Run Code Online (Sandbox Code Playgroud)