我们计划在这本书中实现什么目标?

很显然,我们希望更好地理解 TDD--不仅仅是理论上的理解,而是实际可用和适用的理解。我们想帮助自己写出更好的代码,让其他开发人员也能受益,他们也会在你自己的代码上工作。我们希望能够为如何编写稳健、坚固、可自我诊断且更具扩展性的软件奠定基础。

前面我们使用了一个非常简单的类比,即 "清理我家的待办事项清单",试图解释什么是 TDD 以及如何实现 TDD,但如果这一切都只是理论,那将不会非常令人兴奋。在本书中,我们将尝试使用一个示例项目来真正实现 TDD

我们将构建一个示例项目,帮助我们完成以下任务:

  • 确定客户或企业想要实现的目标

  • 将这些需求转化为实际的请求

  • 学习如何实施 TDDBDD

  • 按照设计模式和最佳实践方式编写简洁的代码

  • 使用持续集成自动运行所有测试

  • 使用持续部署自动部署我们的代码

总结

在本章中,我们定义了什么是 TDD,什么不是 TDD。我们试图将 TDD 与简单的日常任务联系起来,例如清洁家中的某些地方。希望通过澄清对 TDD 的常见误解,我们能对 TDD 有一个更清晰的认识。TDD 是一个过程;它不仅仅是编写单元测试和自动测试。

我们还介绍了在开发 PHP 应用程序时为什么要使用 TDDTDD 可以帮助我们开发出更简洁、解耦、可维护的代码,还可以帮助我们更有信心地确保在发布代码时不会引入回归,这要归功于遵循 TDD 所固有的自动测试覆盖率。

在下一章中,我们将开始构建示例项目,首先提出一个简单的假设业务挑战,然后完成需要构建东西来解决问题。