编写大型数据结构的单元测试

时间:2011-10-19 11:10:06

标签: unit-testing

假设您有方法Tree supersizeMe(Tree input)。输入和返回值都是递归数据结构,并且该方法返回大小因子约为500的结构。因此,如果input是可能的最小元素,则函数的返回值包含大约500个元素。 / p>

这是我目前的情况的简短描述,我应该写一个单元测试。 当然,具有~500个元素的最小输出大小,我无法真正根据assert - 语句进行测试。所以这是我的问题:

测试这种方法有什么好主意?

PS:我可以通过外部程序手动验证输出;这样的功能包含在我的API中,但使用这些类与单元测试的想法相冲突,不是吗?

编辑:API是用java开发的,我使用jUnit4进行测试。

1 个答案:

答案 0 :(得分:5)

  

但是使用这些类与单元测试的想法相冲突,不是吗?

单元测试的想法是它单独测试单个代码单元。我没有看到如何使用复杂的第三方代码来验证是否会出现正确性。

真正的问题是转换本身是否是一个足够简单的操作,失败的测试会让你很好地了解问题所在。如果没有,您可能希望将其分解为可以独立测试的较小操作。

可能有TDD纯粹主义者要求任何不能立即完全理解的测试,并且告诉您问题所在的确切代码行不是真正的单元测试,并且使用第三方API是不可接受的,但是当你喜欢你工作的,经过测试的代码时,他们可以嘲笑他们的教条。