如何为压缩和解压缩的方法编写单元测试

本文关键字:方法 单元测试 解压缩 压缩 | 更新日期: 2023-09-27 18:05:19

我需要为压缩和解压缩ArraySegment对象的方法编写单元测试。这些方法里面有很多我不需要理解的奇怪的处理方法。(他们也使用一些系统方法-我不知道他们的实现。)

问题在于如何实际测试这些东西。我可以检查具体输入Lorem ipsum dolor sit amet, consectetur adipisicing elit.的压缩方法的结果,并基于此实验创建一个测试用例,但此解决方案不测试任何边界用例。

我也可以测试是否对一些序列进行压缩,然后解压缩会给我第一个输入序列,但这不是一个纯粹的单元测试。

你遇到过这样的问题吗?有什么好的解决办法吗?

如何为压缩和解压缩的方法编写单元测试

我发现自己定期编写这样的测试。为封装加密的代码编写测试的工作原理类似。

你不能模拟或存根你不完全理解的代码(即你不能准确预测其结果的代码),所以不要担心编写纯单元测试。

  • 是的,测试压缩和解压缩给你返回输入。
  • 测试压缩输入产生的输出小于输入
  • 如果压缩算法的任何细微差别对您的程序很重要,例如它将特定输入压缩到特定程度,您可以对其进行测试。这里的主要值是记录您使用的库具有这些属性以及您关心的属性。
  • 测试边缘情况,如零长度和非常长的输入。
  • 我不会测试压缩特定输入产生特定输出,因为如果将压缩库升级到压缩工作更好的版本,可能会中断。但是,如果您需要持久化压缩后的数据并在稍后解压缩,请务必测试压缩后的版本不会更改,这样您就不会升级库并孤立持久化数据。