测试的粒度如何界定?

对于测试驱动来说,如何确定要测试的主体,是个似是而非的问题。
在OO中对象是最基本的组织结构,那么测试的主体是否可以以对象为基本单位呢?
所以我们可以看见很多“对象”和“对象测试”对,比如有一个CustomerOrder对象,就会有一个CustomerOrderTest对象。虽然后者并不是总是存在。
另外一个常见的做法是只在服务层有测试,也就是说同时测试了Service,DomainModel,DAO。

前者的问题在于对象都是普遍联系的,紧紧测试某个对象,会产生一些意义模糊的测试。这好比流水线作业,某个局部动作如果不放到整个流水线来考察,就没有意义。另外,需要很多的mock或stub也确实恼人。

后者则目的明确,但问题在于运行成本昂贵,因为依赖的东西太多,以至于运行一次测试需要分钟级别的时间。同时,代码会存在相互干扰的情况。

我认为测试应当有明确的目的,否则完全不能思考,同时也需要作合理的划分,要不成本太高。

要到达上述要求,透过方面的视角也许是一个可以考虑的方法。

实际上,寻找测试的粒度,就是在寻找彼此分离的关注点。

针对关注点来进行测试,果真不蒙人? :D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值