代码改变世界

【原】我告诉你为什么要单元测试?

2010-06-29 22:49  bugfly  阅读(625)  评论(1编辑  收藏  举报

  以下的可能不算是文章,但我觉得足够说服你进行单元测试了。

   本人接触单元测试不久,历经两个小项目经验,两个都是WebForm项目,第一个是LinQ+3层架构.NET3.5,这个暂时开发了一部分模块,还没有开发完成。一个是传统ADO.NET+3层架构.NET2.0旧系统扩展。这两个项目都是测试先行的驱动开发方式,业界称这种开发方式叫TDD,至于怎么进行TDD,我这里就不说了,也说不清,可能自己的方式不那么正中。

   其实经历了这两个项目,我的感受是,两个字“自信”!但为什么会自信呢?很简单,传统开发方式是先设计再编码,找错方式是断点调式,先抛开设计这个概念,单说这种断点找错方式,这种方式好比一个检疫中心中,一大堆待检疫的病人围着一个检疫工作人员,工作人员不能保证所有病人都检疫完毕。而TDD,也是一个检疫人员,但不同的是,病人和检疫人员被一条只能通过一个人的路口相隔,检疫人员守在路口,检疫后的病人方可通过,如此做法,保证了通过通道的病人已经检疫,防止漏网之鱼。这就是单元测试的作用,简单而实用。传统的开发模式:1(开发):N(断点找错,项目初期可能很小,而项目后期N可能很大,随着项目庞大投资越多,不可预测)  TDD开发模式:1(开发):N(N比较稳定,可预测):M(M一般是集成测试,这里的时间很小很小)。相比之下,前者是一个未知的投入,小项目很飘逸,而大项目就越做越乏力了,调试时间大于开发时间。而后者整个生命周期都是流水线,很平稳,所以TDD们能够自信起来。

    本人才疏学浅,文章语言可能不痛楚,请笑纳,希望大家共同加入TDD队列,一起交流心得,一起分享经验。