Test Driven Development 的一点思考

在学习Ruby on rails 的过程中,真正体验到了TDD和敏捷开发的乐趣,谈一点感想。

TDD与其说是Test Driven Development,不如说是Test Driven Design。

测试先行不同于先编码后测试的最重要一点就是,先编些测试能够在编码前就能思考类和方法的行为,期望输入和期望输出。设计和编码之间的鸿沟最大限度的得到了解决。

Test First 永远不等于"Test Earlier" !

许多自称理解了TDD的人自以为只要懂得了测试的重要性就行了,是否先行并不重要。

在我做项目的经验中,有时候在开发过程中没有写单元测试,而后来上面要求提交单元测试。这时候写单元测试简直就是一场噩梦,因为生米已经煮成了熟饭:

  1. 代码和J2EE API混在一起,JNDI, EJB , Servlet等。脱离容器没有办法测试。
  2. 各个模块之间藕合在一起。


这时候最好的交差办法就是做一些"Mock Unit Test",写一些假的单元测试,比如说get,set方法的测试。
最要命的是重构也非常困难,Unit Test 和Refactoring之间的关系就像鸡和蛋一样,没有Unit Test ,Refactoring其实就是痛苦的Debug过程。


而如果测试先行的话,整个开发过程中我的代码都是可单元测试的,只有这样才能保证敏捷开发的顺利进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值