为什么PHP测试并不可怕,反而很有用?
\n\n想象一下:你写了一个PHP脚本,它运行正常。你很高兴。一周后需要添加一个新功能。你修改了几行代码——然后突然一切都崩溃了。熟悉吗?如果是这样,那你急需了解PHP测试。这不是魔法,只是一套能拯救你的项目免于混乱的工具。
\n\n许多初级开发人员害怕测试。似乎这很复杂、枯燥且耗时。实际上,PHP单元测试就像一份保险:你现在付出一点,以免将来失去一切。在本文中,我们将探讨新手如何开始PHP测试,使用哪些工具,以及如何在不抓狂的情况下编写第一个测试。
\n\n什么是测试,为什么需要它?
\n\n代码测试是验证你的程序是否按预期运行的过程。你不必每次都手动打开浏览器并点击链接,而是编写专门的脚本(测试)来自动完成这些操作。
\n\n主要优点:
\n- \n
- 对代码的信心。你确切知道修改后不会破坏任何东西。 \n
- 节省时间。自动检查比手动检查更快。 \n
- 文档。测试展示了你的代码应该如何工作。 \n
- 简化重构。如果测试通过,你可以放心地重写代码。 \n
最流行的PHP测试工具是PHPUnit。它是PHP世界的事实标准。我们将使用它。
\n\n安装PHPUnit:两种简单方法
\n\n在编写测试之前,需要安装PHPUnit。有两种主要方式。
\n\n方法1:Composer(推荐)
\n\n如果你已经在使用Composer(你应该使用,它是PHP的依赖管理器),那就很简单了。在项目根目录打开终端并执行:
\n\ncomposer require --dev phpunit/phpunit ^10\n\n--dev标志意味着PHPUnit将仅为开发环境安装,不会进入生产服务器。
方法2:PHAR归档
\n\n如果Composer不适合你,可以下载PHPUnit作为一个文件:
\n\nwget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit\n\n之后,phpunit --version命令应该显示版本号。
第一个测试:编写并运行
\n\n现在是最有趣的部分。创建一个简单的类并为其编写测试。假设我们有一个将两个数字相加的函数。
\n\n步骤1. 待测试的代码
\n\n创建文件src/Calculator.php:
<?php\n\nnamespace App;\n\nclass Calculator\n{\n public function add(float $a, float $b): float\n {\n return $a + $b;\n }\n}\n\n步骤2. 为该类编写测试
\n\nPHPUnit遵循约定:测试存放在tests/目录中,测试文件名与类名相同并带有Test后缀。创建tests/CalculatorTest.php:
<?php\n\nnamespace Tests;\n\nuse App\\Calculator;\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n public function testAdd()\n {\n $calculator = new Calculator();\n $result = $calculator->add(2, 3);\n $this->assertEquals(5, $result);\n }\n}\n\n这里发生了什么?
\n- \n
- 我们继承了
TestCase——PHPUnit的基类。 \n testAdd方法就是我们的测试。PHPUnit会自动运行所有以test开头的方法。 \n$this->assertEquals()是一个断言。它检查