用途:PHPUnit 是 PHP 生态的官方通用单元测试框架,适用于 Laravel、Symfony 及现代 PHP 应用的单元测试与集成测试,可测试领域模型、服务、控制器及数据库交互。
主要能力:支持使用 PHP 断言编写测试;通过 #[DataProvider] 或 @dataProvider 运行参数化、多维数据集的测试;原生生成 mock 对象并验证方法调用与参数期望,无需外部库;通过 phpunit.xml 声明式配置测试套件、环境变量与覆盖率;支持 #[Test] 等 PHP 8 属性。
使用方式:测试类继承 PHPUnit\Framework\TestCase,在方法中用 $this->assert* 系列断言;数据提供器方法需声明为 public static;使用 $this->createMock() 配合 expects()、method()、with() 验证调用;通过 phpunit.xml 定义 bootstrap、testsuites 与 source 目录。常用运行命令:./vendor/bin/phpunit --colors=always --testdox。若出现类未找到错误,可运行 composer dump-autoload。
适用场景:为 PHP 项目编写单元测试、功能测试、参数化测试矩阵及依赖隔离的模拟测试。
限制与注意:浮点数比较应使用 assertEqualsWithDelta 而非 assertEquals,避免精度问题;捕获异常应使用 $this->expectException(),而非手动 try/catch;不建议无必要使用 @runInSeparateProcess,因其带来较大性能开销;测试文件建议加 declare(strict_types=1);。缺失事实(如收费、平台支持等)暂未提供。