TDD的黄金法则说:永远不要在没有失败的测试的情况下写新的功能。
如果您没有遵守此规则,那么您正在部署TDD(就像在应用程序中为几个类编写单元测试)。这比没有什么更好(至少你知道这些类做了所需的工作,但你不能确定应用程序的其他部分工作,这些类可以与它们集成),但这并不能保证你的应用程序按预期工作。因此,您需要通过编写失败的验收测试来启动每个功能,这会引导您的应用程序设计并定义应用程序行为(外部循环)。虽然此测试失败,但功能未被您的应用程序实现。那么你应该对单独的单元进行单元测试,这些单元将涉及这个特征(内循环)。外循环验证所涉及到的功能中的所有类是否按预期一起工作。内循环验证每个类是否按预期自己工作。
以“成长型面向对象软件”为题材的图片,引导测试演示了TDD中的两个反馈循环:
对您的问题的回答是 – TDD包括集成测试。这是唯一不能打破TDD规则的唯一办法。