PHP代码测试:从零到第一个测试的新手指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

为什么PHP测试并不可怕,反而很有用?

\n\n

想象一下:你写了一个PHP脚本,它运行正常。你很高兴。一周后需要添加一个新功能。你修改了几行代码——然后突然一切都崩溃了。熟悉吗?如果是这样,那你急需了解PHP测试。这不是魔法,只是一套能拯救你的项目免于混乱的工具。

\n\n

许多初级开发人员害怕测试。似乎这很复杂、枯燥且耗时。实际上,PHP单元测试就像一份保险:你现在付出一点,以免将来失去一切。在本文中,我们将探讨新手如何开始PHP测试,使用哪些工具,以及如何在不抓狂的情况下编写第一个测试。

\n\n

什么是测试,为什么需要它?

\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\n
composer require --dev phpunit/phpunit ^10
\n\n

--dev标志意味着PHPUnit将仅为开发环境安装,不会进入生产服务器。

\n\n

方法2:PHAR归档

\n\n

如果Composer不适合你,可以下载PHPUnit作为一个文件:

\n\n
wget 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

现在是最有趣的部分。创建一个简单的类并为其编写测试。假设我们有一个将两个数字相加的函数。

\n\n

步骤1. 待测试的代码

\n\n

创建文件src/Calculator.php:

\n\n
<?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\n

PHPUnit遵循约定:测试存放在tests/目录中,测试文件名与类名相同并带有Test后缀。创建tests/CalculatorTest.php:

\n\n
<?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()是一个断言。它检查

博客

书籍推荐