我想知道我是否应该对没有控制流的单元测试功能。这个函数接受一些输入,调用一系列5/6其他函数,然后返回一些输出。
测试它们似乎是浪费时间,因为我没有看到我将要测试的确切内容。调用的其他函数已经对它们进行了单元测试。 我的主要缺点是我不知道输出应该是先验的,我需要在测试脚本中调用相同的函数来查看结果是否一致;然后我在测试什么?测试函数和实际函数的顺序是否相同?
感谢您的任何见解
注意:与上一个问题相同,如果您认为主要是基于意见的重新制定为“根据单元测试艺术中提倡的原则,我应该单独测试没有控制流的功能吗?”
答案 0 :(得分:1)
简短回答:是的,当然可以!
长答案:方法如何做到最后“实现”细节。从这个意义上说:如果一个方法正在使用一个开关,一些if / elses,一个循环,或者只是按顺序调用其他方法,你根本不在乎。
相反,您应该了解您的方法提供的合同:它需要哪个输入;什么出来(取决于输入可能)。
这就是你关注的重点:创建一个可以运行方法的设置;然后检查该方法是否支持该合同。
示例:
false
上面的代码不包含任何控制流语句。但是,仍然存在各种可能出错的地方(例如NullPointerExceptions)。您认为使用单元测试捕获它们会不会更好?