我有一个这样定义的循环:
api.release(release_url).rels[:assets].get.data.each do |existing_file|
log "Already Contains: #{existing_file.name}"
end
如何存根existing_file.name
?我希望它也给它多个值。
我试图像这样存根:
provider.api.release.rels[:assets].get.stub(:data).and_return([{ :name => "foo.bar"}, { :name => "bar.foo"])
但是这会返回错误:undefined method 'name' for Hash
。这让我觉得我正在迭代一系列类。关于如何存根的任何建议?谢谢你的帮助!
答案 0 :(得分:2)
使用double
- 你应该这样做:
provider.api.release.rels[:assets].get.stub(:data).and_return(
[double(:name => "foo.bar"), double(:name => "bar.foo")]
)
答案 1 :(得分:1)
试试这个:
创建一个帮助类,让我们称之为Clazz,并使用它而不是哈希。
class Clazz < Struct.new(:name); end;
provider.api.release.rels[:assets].get.stub(:data).and_return([Clazz.new("name1"), Clazz.new("name2")])
现在您可以使用name
作为方法。