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

时间:2014-05-27 15:44:31

标签: c# unit-testing testing compression testcase

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

您无法模拟或存储您不完全理解的代码(即您无法准确预测结果的代码),因此请不要担心编写纯单元测试。

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