测试驱动开发

| 选择喜欢的代码风格  

PHP 有一些不同种类的测试工具 (或框架) 可以使用,它们使用不同的方法 - 但他们都试图避免手动测试和大型 QA 团队的需求,确保最近的变更不会破坏既有功能。

测试驱动开发


测试驱动开发 (TDD) 是一种以非常短的开发周期不断迭代的软件开发过程:首先开发者对将要实现的功能或者新的方法写一个失败的自动化测试用例,然后就去写代码来通过这个测试用例,最终通过重构代码让一其达到可接受的水准。Kent Beck, 这个技术创造者或者说重新发现者,在2003年声明TDD 鼓励简单的设计和激励信心。

目前你可以应用的几种不同类型的测试:

单元测试


单元测试是一种编程方法来确认函数,类和方法以我们预期的方式来工作,单元测试会贯穿整个项目的开发周期。通过检查各个函数和方法的输入输出,你就可以保证内部的逻辑已经正确执行。通过使用依赖注入和编写”mock” 类以及 stubs 来确认依赖被正确的使用,提高测试覆盖率。

当你创建一个类或者一个函数,你应该为它们的每一个行为创建一个单元测试。至少你应该确认当你输入一个错误参数会触发一个错误,你输入一个有效的参数会得到正确的结果。这会帮助你在开发周期后段对类或者函数做出修改后,确认已有的功能任然可以正常的工作。可替代的方法是在源码中使用 var_dump() ,但这种方法却不能去构建一个或大或小的应用。

单元测试的其他用处是在给开源项目贡献代码时。如果你写了一个测试证明代码有bug,然后修复它,并且展示测试的过程,这样补丁将会更容易被接受。如果你在维护一个项目,在处理 pull request 的时候可以将单元测试作为一个要求。

PHPUnit 是业界PHP应用开发单元测试框架的标准,但也有其他可选的框架:

PHP 测试框架扩展阅读




发表评论