关于单元测试的拙见和问题
对于单元测试,我觉得有三种情况:
一是输入输出为值,且与数据库无关
二是输入输出为值,且与数据库有关
三是输入输出不是值的情况
第一种情况常见于控制类,它的方法,一般情况下,参数就是输入值,返回值就是输出值,此时输出值只受输入值的影响
第二种情况常见于实体类,它的方法,一般情况下,与控制类的方法相同,但是输出值不只是受输入值的影响,同时还受当前数据库的内容影响。
第三种情况常见于边界类(一般就是界面,不知道我这样理解对不对),一般情况下,它的方法是系统定义的方法,虽然也有参数和返回值,但是对开发人员来说并不是很重要,有时甚至不用。如界面中一个按钮的clicked事件。
对应于上面的三种情况,测试也有不同。
对于第一种情况,比较好办,在设计这个类时,就可以写出测试用例,包括具体的输入值和期望输出。
对于第二种情况,在写测试用例时,就必须先假定数据库中相应表的数据值,但是在真正测试时,并不能保证数据库中的真实数据就是我假定的数据,这种情况下,就需要测试人员去查看数据库的当前内容,就有些麻烦。
对于第三种情况,我根本就不知道怎么去写测试用例。如一个按钮的clicked事件,其中有很多步骤,受影响的部分可能也有很多,这些情况在设计时都已经有说明了,如果对照着设计文档,应该是可以测试的,但要写测试用例,我就不知从何下手,总不能从设计文档中抄一遍吧。这种情况下,我现在的观点是不写测试用例,让测试人员直接看设计文档进行测试。
以上是我的拙见,不知道这种分类是否科学,另外,对于我说的第二种情况和第三种情况,各位有何高见