我正在编写一个单元测试,其中一个测试返回一个 zip 文件,我想检查该 zip 文件的内容,从中获取一些值,并将这些值传递给下一个测试。
我正在使用 Rack Test,所以我知道我的 zip 文件的内容在里面last_response.body
。我查看了文档RubyZip http://rubyzip.sourceforge.net/但似乎它总是在等待一个文件。由于我正在运行单元测试,因此如果可能的话,我更喜欢在内存中完成所有操作,以免测试 zip 文件污染任何文件夹。
马特的回答完全正确。这里更新为新的API:
Zip::InputStream.open(StringIO.new(input)) do |io|
while entry = io.get_next_entry
if entry.name == 'doc.kml'
parse_kml(io.read)
else
raise "unknown entry in kmz file: #{entry.name}"
end
end
end
并且不再需要对 StringIO 进行猴子补丁。进步!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)