在要求项目要尽量快地实现的时候,质量与开发进度上会出现一定的矛盾,最突出的就是单元测试代码与逻辑实现代码。TDD (测试驱动开发)必然没错,但是使用不当会造成开发效率的下降。在敏捷开发实践中,结合前辈经验与自己的经验,如下几点是要关心的:1. 为主要的、关键的逻辑组件,关键的逻辑方法进行测试驱动开发 这样对设计、设计演化很有帮助2. 逻辑类似的组件如果存在多个,优先编写其中一种逻辑组件的测试代码 实践中可能会出现一些组件在逻辑上可能完成差不多的功能(例如类型转换帮助类),可以先只编写其中一种组件的 测试代码以节省时间3. 发现 Bug 时一定先编写测试代码进行 Debug 在测试和调试之间众说纷纭,我的观点是应该先编写测试代码找出这个 Bug4. 关键 Utility、Infrastucture 类型的组件请编写测试代码 不要忽视了这些帮助类、基础类的正确性和运行效率5. 保持测试代码与逻辑代码同步 这里说的“同步”主要包括了测试方法和实现方法的同步;测试代码注释和逻辑代码注释的同步6. 保证测试用例的独立性 让测试用例独立的可执行,尽量不要依赖其他的测试用例。这样才能让 TDD 与设计保持良好的协作7. Mock 是必不可少的 使用 Mock 可以让接口的设计得到快速验证与反馈,也对团队的平行开发提供便利