1. 什么是 TDD
- 定义:TDD 的全称叫做 Test-Driven Development,即测试驱动开发。它是一种软件开发流程,由敏捷的“极限编程”引入
- 原理:先写出测试用例,然后再写功能代码。确保所有对外暴露的代码都可测试,并且通过测试
2. TDD 的具体流程
- 新建一个测试类,添加测试用例
- 新建功能实现类
- 运行测试,由于功能类未完成,测试失败
- 补充功能类,实现功能
- 再次运行测试,使得测试通过
- 重复这个过程完成整个应用的开发
3. TDD 的优缺点
优点:
- 代码可测试:它从测试出发,保证了代码的可测试性
- 耦合度低:在测试的过程中,为了可测试的需求,开发人员必须将一些逻辑从 UI 等难于测试的地方解耦出来,使得系统的耦合度降低,使得代码粒度更小,结构清晰
- 测试覆盖率:具有一定的测试覆盖率,可以为后续的升级维护提供正确性保证。
缺点:
- 上手难度较高,开发人员需要一定的能力以及一段时间的适应才能驾驭这种方法
4. 怎样使用 TDD
- 建议使用 Robolectric,它将测试运行在 JVM 之上,省去了测试部署、加载到模拟器的耗时操作
- 同时避免了一些由于 Stub 引起的问题