JSONデータを受け入れるAPIを作成していて、そのためのテストデータを提供したいと思います。
JSONデータのファクトリに似たものはありますか?インポートが意図したとおりに機能するかどうかを確認できるように、オブジェクトとJSONで同じデータを使用できるようにしたいと思います。
JSONは厳密に構造を定義しているため、呼び出すことはできませんFactoryGirl(:record).to_json
。
JSONデータを受け入れるAPIを作成していて、そのためのテストデータを提供したいと思います。
JSONデータのファクトリに似たものはありますか?インポートが意図したとおりに機能するかどうかを確認できるように、オブジェクトとJSONで同じデータを使用できるようにしたいと思います。
JSONは厳密に構造を定義しているため、呼び出すことはできませんFactoryGirl(:record).to_json
。
このような場合、インポートする JSON のフィクスチャ ファイルを作成します。次のようなものが機能します。
json = JSON.parse(File.read("fixtures/valid_customer.json"))
customer = ImportsData.import(json)
customer.name.should eq(json["customer"]["name"])
FactoryGirl を使用して属性を設定し、それを JSON に取得してインポートできるものは見たことがありません。Customer オブジェクトを取得して JSON でレンダリングし、それをインポートするマッパーを作成する必要があるでしょう。
実際、factorygirl で次のことができます。
factory :json_data, class: OpenStruct do
//fields
end
FactoryGirl.create(:json_data).marshal_dump.to_json
少し前に、この問題に対処するFactoryJSON gemを実装しました。これまでのところ、非常にうまく機能しています。Readme ファイルには、考えられる使用例が記載されています。