测试概览

PHP 有一个庞大的测试套件,包含 15000 多个单独的测试文件。这些测试文件通过 PHP 的黑盒测试工具 run-tests.php 运行,该工具位于 php 源代码的根目录下。

但是等等!你说,我听说 PHP 源代码没有任何单元测试。你是对的。PHP 源代码没有任何单元测试。但它确实有 功能测试,而且幸运的是,这些特定的功能测试都是用 PHP 编写的。测试文件的扩展名为 .phpt,可以像其他普通的 PHP 文件一样运行。

编写 phpt 测试的官方文档位于 qa.php.net

黑箱测试

简而言之, 黑盒测试 是向某个函数发送输入,并在函数执行完毕后检查输出。如果输出结果符合我们的预期,那么测试就通过了。黑盒测试并不关心事情是如何完成的,它只关心最终结果。这正是 run-tests.php 的工作原理;它接收一组输入,运行一些 PHP 代码,然后检查输出。如果输出结果与预期相符,则测试通过。

测试文件存放的位置

测试文件存放在代码库中多个不同的名为 tests 的文件夹中。每个测试文件夹都包含与文件夹内代码相关的 .phpt 文件。

  • ext/{extension-name}/tests/ 扩展测试

  • sapi/{sapi-name}/tests/ SAPI 测试

  • Zend/tests/ Zend 引擎测试

  • tests/ 更多 Zend 引擎测试