TDD全称Test Driven Development,是一种软件开发的流程,其由敏捷的“极限编程”引入。其开发过程是从功能需求的test case开始,先添加一个test case,而后运行全部的test case看看有没有问题,再实现test case所要测试的功能,而后再运行test case,查看是否有case失败,而后重构代码,再重复以上步骤。其理念主要是确保两件事:html
我不否定TDD的一些有用的地方,若是咱们以Test Case 开始,那么,咱们就能够马上知道咱们的代码运行的状况是什么样的,这样能够让咱们更早地获得咱们实现思路的反馈,因而咱们更会有信心去重构,去从新设计,从而能够让咱们的代码更为正确。shell
不过,我想提醒的是,TDD和Unit Test是两码子事儿。有不少人可能混淆了自动化的Unit Test(如:XUnit系例)和TDD的软件开发过程。另外,可能还会有人向鼓吹“TDD让你进行自顶向下的设计方式”,对此,请参阅本站的《Richard Feynman, 挑战者号, 软件工程》——NASA的挑战者号告诉你自顶向下设计的危险性。编程