我是否需要在没有控制流的情况下进行单元测试功能?

时间:2016-12-01 10:56:47

标签: unit-testing

我想知道我是否应该对没有控制流的单元测试功能。这个函数接受一些输入,调用一系列5/6其他函数,然后返回一些输出。

测试它们似乎是浪费时间,因为我没有看到我将要测试的确切内容。调用的其他函数已经对它们进行了单元测试。 我的主要缺点是我不知道输出应该是先验的,我需要在测试脚本中调用相同的函数来查看结果是否一致;然后我在测试什么?测试函数和实际函数的顺序是否相同?

感谢您的任何见解

注意:与上一个问题相同,如果您认为主要是基于意见的重新制定为“根据单元测试艺术中提倡的原则,我应该单独测试没有控制流的功能吗?”

1 个答案:

答案 0 :(得分:1)

简短回答:是的,当然可以!

长答案:方法如何做到最后“实现”细节。从这个意义上说:如果一个方法正在使用一个开关,一些if / elses,一个循环,或者只是按顺序调用其他方法,你根本不在乎。

相反,您应该了解您的方法提供的合同:它需要哪个输入;什么出来(取决于输入可能)。

这就是你关注的重点:创建一个可以运行方法的设置;然后检查该方法是否支持该合同。

示例:

false

上面的代码不包含任何控制流语句。但是,仍然存在各种可能出错的地方(例如NullPointerExceptions)。您认为使用单元测试捕获它们会不会更好?