TDD中单元测试测试覆盖范围问题

TDD中单元测试测试覆盖范围问题

1、问题

​ TDD要求测试反馈速度非常快,如果不快就没有办法支持小步快走的的三个标准步骤。如果进行重量级单元测试启动本地环境连接内存数据库或者文件IO等,无法达到秒级反馈。

所以只能采用测试替身(mocks或者stub)屏蔽掉被测对象的细节,那么每个单测覆盖的边界在哪里呢?

2、二分法

是做极端重视单元的隔离性的Mock主义者,还是做小型集成测试SUT(System Under Test)主义者?
1)Mock主义者写出的单测:测试范围小;测试准确性依赖于约定;测试支持由外向内的方法;设计风格进化是Mock主义者关键动力。
2)小型集成测试SUT主义者写出的单测:测试范围较大;使用真实对象或者替身作为模拟;将功能点作为测试目标,单测覆盖多个class;运行了第一个测试,对模拟的期望就作为下一步的规范和测试的起点,逐步逐步遍历系统层次,节奏可控。

3、综合

通常对于修改遗留代码、做ATDD,采取小型集成测试比较方便,提测前精神舒爽;

对于完全新增的代码,不妨试试重视隔离的单测。

无论选哪种TDD风格,提测前都需要再运行断言到数据库的重量级单元测试。

4、小型集成测试示例

描述:针对类链式调用场景 AFacade->BDoaminService->CM

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值