因为公司的一个JUnit Training接触到了TDD这个词,通过网上查了一下资料了解一下相关概念。
1.TDD(Test-Driven Development)测试驱动开发,顾名思义,让测试来指导开发。也许有的人会说:TDD就是针对每个方法写单元测试。据我个人理解,并非如此,单元测试只是TDD整个过程中的一部分。在以往的工作中,我们通常是写完成功能然后测试进行验证,而TDD则把测试当成了一种设计活,我们利用测试来澄清思路,说明我们希望代码做什么。同时我们通过编写testcase可以快速获得有关设计思路内部代码的质量。一个好的设计更容易编写testcase.当你发现很难写testcase或者内部代码比较混乱的时候就需要refactory了然后验收测试。
2.TDD步骤流程
a:搭建,部署一个可测试的骨架
b.模拟用户测试场景 - 集成测试
c.获取反馈信息 - 编写一个会失败的验收测试
d.编写一个会失败的单元测试,重构
e.让这个测试通过,自动化部署
f.循环b-e这个过程(也称回归测试)
g.验收测试
h.验收测试通过 - 说明已完成特征
在实际工作我们并非能奢望从头开始构建一个新项目,许多项目必须从已有系统开始。在这种情况下,我们还是参照TDD的流程,在添加功能时引入单元测试。
值得一提的是,单元测试并不是针对类得每个方法进行@Test,而是针对功能职责写@Test