PHP 教程 目录

PHP 单元测试 (PHPUnit)

单元测试是软件工程中的重要环节之一。它通过编写测试代码来验证软件的各个组件是否按预期工作。PHPUnit 是一个广泛使用的 PHP 测试框架,提供了丰富的功能和工具来帮助开发者进行单元测试。

安装 PHPUnit

安装 PHPUnit 需要借助 Composer,这是一个 PHP 的依赖管理工具。首先确保你的机器上已经安装了 Composer。然后在项目目录下执行以下命令:

上述命令会将 PHPUnit 下载到你的项目中,并将其添加为项目的开发依赖。^9 表示安装 PHPUnit 9.x 版本。

编写第一个测试

假设我们有一个简单的类 MathHelper,它有两个方法:addsubtract。我们将为这两个方法编写单元测试。

创建 MathHelper

首先,创建 MathHelper 类文件 MathHelper.php

-- -------------------- ---- -------
-----

----- ---------- -
    ------ -------- ------- --- -
        ------ -- - ---
    -

    ------ -------- ------------ --- -
        ------ -- - ---
    -
-

编写测试类

接下来,我们需要创建一个测试类来验证 MathHelper 类的方法是否正确。创建文件 MathHelperTest.php

-- -------------------- ---- -------
-----

--- ---------------------------

----- -------------- ------- -------- -
    ------ -------- --------- -
        ----------- - --- -------------
        ------- - -------------------- ---
        ----------------------- ---------
    -

    ------ -------- -------------- -
        ----------- - --- -------------
        ------- - ------------------------- ---
        ---------------------- ---------
    -
-

运行测试

打开终端,切换到项目根目录,运行以下命令:

如果一切正常,你应该能看到类似如下的输出:

这表示你的测试已经成功通过。

使用数据提供者

有时,一个方法可能需要在多种输入情况下进行测试。为了简化这一过程,可以使用数据提供者。

修改 MathHelper

假设 MathHelper 类新增了一个方法 multiply

编写测试类

更新 MathHelperTest 类,添加一个新的测试方法并使用数据提供者:

-- -------------------- ---- -------
-----

--- ---------------------------

----- -------------- ------- -------- -
    ------ -------- --------- -
        ----------- - --- -------------
        ------- - -------------------- ---
        ----------------------- ---------
    -

    ------ -------- -------------- -
        ----------- - --- -------------
        ------- - ------------------------- ---
        ---------------------- ---------
    -

    ---
     - ------------- --------------------------
     --
    ------ -------- ---------------- --- ---------- -
        ----------- - --- -------------
        ------- - ------------------------- ----
        ------------------------------ ---------
    -

    ------ -------- ---------------------------- -
        ------ -
            --- -- ---
            --- -- ----
            --- --- ---
            ---- --- ----
        --
    -
-

运行测试

再次运行测试,这次将会验证 multiply 方法在不同情况下的表现。

断言

PHPUnit 提供了多种断言方法,用于验证方法的输出是否符合预期。常见的断言包括:

  • assertEquals($expected, $actual):验证两个值是否相等。
  • assertTrue($condition):验证条件为真。
  • assertFalse($condition):验证条件为假。
  • assertNull($value):验证值是否为 null。
  • assertIsArray($value):验证值是否为数组。

你可以根据具体需求选择合适的断言方法。

结论

通过以上步骤,我们了解了如何安装 PHPUnit、编写基本的测试以及如何使用数据提供者和断言。掌握这些基础知识后,你可以进一步探索更复杂的测试场景和高级功能,如模拟对象、覆盖率报告等。

希望本章内容对你有所帮助,祝你在 PHP 单元测试之路上越走越远!

纠错
反馈