我正在处理一个服务/工作流,该服务/工作流将使用与Project
相关联的许多数据文件,并为其创建一个zip文件。这些文件由Carrierwave管理。我正在使用本机的Rails TestCase / Minitest,并且想知道什么是测试zip文件生成的最佳方法?
目前,用于抓取文件并将其写入zip的代码如下:
def generate_zip(project)
project_tracks = project.project_tracks
# base temp dir
temp_dir = Dir.mktmpdir
# path for zip we are about to create
zip_path = File.join(temp_dir, "#{project.name}.zip")
Zip::ZipOutputStream.open(zip_path) do |zos|
project_tracks.each do |project_track|
path = project_track.track.path
zos.put_next_entry(path)
zos.write project_track.track.file.read
end
end
end
最初,我的想法是创建zip文件并比较字节?想知道这是一个好主意还是有更好/更快的方法来测试这种逻辑。