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

Kub*_*ski 1 c# compression testing unit-testing testcase

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

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

我还可以测试在某些序列上进行压缩然后解压缩是否给出了第一个输入序列,但这不是纯粹的单元测试.

你遇到过这样的问题吗?它有什么好的解决方案吗?

Dav*_*uth 5

我发现自己定期写这样的测试.为包装加密的代码编写测试的工作方式类似.

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

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