一.与传统开发的区别
正常的开发流程:先开发界面或类,然后在进行编码测试
即:项目代码开发 -> 编写测试用例 –> 运行测试用例 -> 修复代码BUG
而TDD:首先是进行测试用例的编写,然后再进行类或者用户界面的开发。
即:编写测试用例 -> 运行测试用例 –> 编写项目代码 -> 运行测试用例 -> 重构代码
二.原理
测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
三.特征
1.与其他代码相隔离:单元测试只测试一件事,否则应该怀疑是否是测试内容有误
2. 与其他开发人员隔离:保证最小化的变量影响单元测试,也就是控制变量法。逐渐形成了模拟框架以及依赖注入框架等辅助工具。
3.有针对性:要做有意义的测试,保证完成那些功能或方法。
4. 可重复:单元测试的最大优势就是可重复,这也是持续集成的意义所在。
5.可预测:单元测试保证的是---确定的输入得到肯定的输出。
四.测试方式
1.单元测试:针对一个基础类进行输入/输出测试
主要是工具:NUnit、MSTest
2.框架测试:测试一个方法而不对其他发展产生影响或者被影响
主要工具:Rhino Mock、Type Mock、Moq
五.过程
制定TODO列表—>快速完成测试用例编写—>测试代码编译不通过—>编写对应功能代码—>测试通过—>重构—>循环开发