我想模拟/存根:
@the_bill = GovKit::OpenCongress::Bill.find_by_idents("112-s368").first
用于我的测试。
返回我想为测试目的修复的以下对象:
--- !ruby/object:GovKit::OpenCongress::Bill bill_type: s co_sponsors: - !ruby/object:GovKit::OpenCongress::Person {} id: 68340 introduced: 1297836000 most_recent_actions: - result: created_at: "2011-02-17T07:45:50Z" govtrack_order: amendment_id: text: Read twice and referred to the Committee on Agriculture, Nutrition, and Forestry. date: 1297836000 how: id: 287979 vote_type: type: BillAction roll_call_id: action_type: action datetime: "2011-02-16T00:00:00Z" where: bill_id: 68340 roll_call_number: - result: created_at: "2011-02-17T07:45:49Z" govtrack_order: amendment_id: text: date: 1297836000 how: id: 287978 vote_type: type: BillAction roll_call_id: action_type: introduced datetime: "2011-02-16T00:00:00Z" where: bill_id: 68340 roll_call_number: number: 368 plain_language_summary: recent_blogs: []
我已经尝试过Factory_girl(不能这样做,不是基于模型的对象),Fabrication(仍然是相同的问题)和OpenStruct,可能是可能的,但是在将yaml转换为OpenStruct并将模拟放在正确的位置时遇到了麻烦。 / p>
现在,我正在我的测试中进行api调用,而不是我想要的。我在想webmock是我的解决方案,但我在文档中找不到如何只加载一个简单的对象。
答案 0 :(得分:5)
尝试使用VCR来模拟API。大约6个月前,我有完全相同的问题,最近才发现这个库。它完全符合您的需要,将缓存对象以便稍后进行测试,但也可以定期自动刷新它们。到目前为止,它已经找到了我为此找到的最佳解决方案。