【问题标题】:The best way to verify a zip file function in Elixir在 Elixir 中验证 zip 文件功能的最佳方法
【发布时间】:2014-04-29 00:51:58
【问题描述】:

我有一个包含 zip 函数的路径库,在编写单元测试时,我试图找到验证 zip 函数是否正常工作的最佳方法。

有人可以告诉我验证 zip 功能是否正常工作的最佳方法吗?

我能想到的几种方法是:

  1. 将生成的 zip 文件的 md5 与示例 zip 文件进行比较
  2. 列出 zip 文件的内容并确保内容正确

但是,这两种方式似乎有点啰嗦,我猜这不是惯用的 Elixir。有人可以告诉我一个更好的方法吗?

【问题讨论】:

    标签: erlang elixir


    【解决方案1】:

    我将创建一个测试文件目录以在您的单元测试中压缩,使用受信任的实用程序将其压缩并获取生成的 md5。然后为您的单元测试,执行 zip 功能,获取 md5,并与您验证的 md5 进行比较。

    【讨论】:

    • 我认为这样的东西也足够了:System.cmd("zip -T <filename>")
    【解决方案2】:

    如果我是正确的,有一些参数会影响 zip 处理的结果(如块大小)。因此,除非您的目的是彻底检查您的 zip 过程是否再现了所有或部分 zip 功能,否则我发现验证系统中的各种文件(或/和一些随机文件)是否可以使用您的功能压缩更有趣,并在外面使用不同的解压工具解压,最后对比一下文件是否与原文件相同。 (当然这需要更多时间,但可以轻松实现自动化)。

    关于使用MD5而不是文件比较,我认为一方面文件比较容易编写,另一方面你需要读取整个文件来计算MD5,所以我认为不是值得使用这个技巧来加速比较 - (特别是如果文件不同:o)。

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 2019-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多