答:抱歉,我主要搞C/C++的单元测试,没做过JAVA的单元测试,不熟悉相关工具。
总的来说,JAVA的单元测试容易一些,因为这种比较新的语言,在设计时就考虑了对单元测试的支持。相关的工具也挺多的,自己找一下吧。
JUnit好像不能生成桩和驱动吧?我没用过。生成桩和驱动是重复劳动,最适合工具来做,这种工具应该有吧。覆盖率统计应该有专门的工具,好像有开源的。
输入输出不仅仅是参数和返回值。输入还包括:成员变量、全局变量,内部输入。内部输入就是调用子函数获得的输入,以及局部静态变量。输出还包括:输出参数、成员变量、全局变量、内部输出。内部输出就是中间结果,例如程序计算好一个数据直接发出去了,没有返回,但是也要判断它对不对。
如果以上输入输出全都没有,这种函数通常只是起一个集成作用,没有什么计算,例如:
void func() { func1(); func2(); func3(); } |
这种函数没必要单元测试,读一下代码就可以了。单元测试适用于算法密集的函数。
另外,给你提个建议:
单元测试并不是容易的工作,不要一下子推广,要自己找些代码测一下,把工具和流程磨合好,去掉不必要的环节,可能的话先找一两个程序员一起探讨和尝试,成熟了才能推广。