有硬件依赖或其他依赖的测试驱动开发

有硬件依赖或者操作系统依赖的TDD相对来说,要麻烦一些。需要写Fake,Spy,Mock等这些DOC(Dependency On Component)测试替代,来帮助测试。

即便是有一些TDD经验的同学,或许面对复杂的系统的TDD开发,也会感到有些无从下手。

参见什么是Mock,Spy,Fake

(一)首先,整个程序架构必须了然于胸,清楚需要开发哪些MOCK模块(下文中Spy,Fake统称为Mock)。见下面的例子(来自月James Grenning - 嵌入式C的TDD开发一书)。画出类关系图,确定被测模块和Mock模块之间关系。



(二)分析需求,列举出大致测试集(今后可以补充)



(三)搭建测试框架,完成初步的对测试辅助模块(Mock,Fake,Spy)的代码构建。

   写对Mock的基本测试,这些基本测试包含诸如在Mock中验证被测模块传递的参数的测试。

 step1,: 在TDD测试项目中包含被测模块与其他模块的接口头文件。

比如:LightController.h, TimeService.h文件需要被包含在项目文件中去。然后定义LightControllerSpy.h 和 FakeTimeService.h两个Mock的头文件。这两个头文件分别包含接口头文件。

step 2:写LightControllerSpyTest.cpp和FakeTimeService.cpp. 刚开始只是写一些基本测试case来测试今后为测试被测模块准备的辅助测试数据,如:传递的参数。

step 3:创建LightControllerSpy.cpp 和 FakeTimeService.cpp,并实现少许代码,pass step2的测试case

     note:步骤3主要是创建测试辅助Mock,形成基本测试框架。


(四)运用0-1-N的TDD测试原则,逐步展开对被测模块的测试和实现

  所谓0-1-N就是从无到有到多的逐步写测试Case,一步一步带领开发完成。每小步都得到验证。

   在这个步骤中被测代码LightScheduler.cpp被创建。在该代码中,它包含的头文件是LightController.h, TimeService.h,而调用的是替代函数,分别在LightControllerSpy.cpp和 FakeTimeService.cpp中。 这里用到的是链接时替换。也就是在链接的时候,用Mock代码替换不能控制模块的接口。这种技术对脱离目标的测试以及消除对第三方库依附于硬件的模块或者操作系统的依赖特别有帮助。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值