测试驱动开发(TDD):原理、实践与示例
一、TDD 概述
TDD(Test-Driven Development)即测试驱动开发,它并不能防止错误,而是揭示错误。使用 TDD 需要一个程序员的测试框架,由于历史原因,它们被称为“单元测试框架”,可用于各种类型的测试。常见编程语言都有对应的测试框架,例如 Java 的 JUnit、.NET 的 xUnit.net、JavaScript 的 Mocha 和 C++ 的 CppUTest 等。
TDD 遵循“红 - 绿 - 重构”的循环:
1. 思考(Think) :TDD 是“测试驱动”的,先编写一个测试,然后编写足够的代码使测试通过。第一步要想象代码期望的行为,确定要实现的第一个小部分(通常少于五行代码),接着编写一个简短的测试,该测试在所需行为未实现时会失败。此步骤要检查代码的行为而非实现,这是 TDD 最难的部分,需要提前思考两步。可以通过结对编程或团队编程来辅助,当思考困难时,可使用探索性解决方案来找到问题的解决方法,再用 TDD 重构。
2. 红条(Red bar) :明确下一步后,编写测试代码,最好少于五行。测试应基于代码的公共接口编写,尊重封装性。编写完测试后,预测测试结果(通常会失败),并使用脚本或 IDE 运行测试,将结果与预测对比。若测试未按预期失败或成功,需排查问题,确保能预测代码的行为。
3. 绿条(Green bar) :编写足够的生产代码使测试通过,通常也少于五行。不考虑设计的完美性,先让测试通过,之后再进行清理。再次预测测试结果并运行测试,若测试失败,尽快恢复到已知的正确代码。若错
超级会员免费看
订阅专栏 解锁全文
1078

被折叠的 条评论
为什么被折叠?



