用途:在运行 Pest v4(PHP 8.3+)的 Symfony 项目中,以 RED-GREEN-REFACTOR 驱动功能开发;编写需要 Symfony 内核或 HTTP 客户端的 it() 与 expect() 测试;用 pest-plugin-drift 把已有 PHPUnit 类测试转换为 Pest 语法;在修复前先添加可复现缺陷的测试。
主要能力与默认流程:确认 PHP 8.3+ 与 Pest v4 后,用 ./vendor/bin/pest --init 生成 tests/Pest.php;在 tests/Pest.php 中绑定 bridge 类,例如 uses(KernelTestCase::class, Factories::class, ResetDatabase::class)->in('Integration') 以及 uses(WebTestCase::class, ...)->in('Functional')。RED 阶段用 Foundry v2 工厂写 it() 测试,运行 ./vendor/bin/pest --filter 并确认因正确原因失败;GREEN 阶段写最小实现,随后 REFACTOR 并重新运行 ./vendor/bin/pest;最后用 --parallel 与 --coverage --min=80 作为套件门禁。
限制与注意事项:没有官方 Symfony Pest 插件,不要引用 pestphp/pest-plugin-symfony,应通过 uses() 绑定 KernelTestCase 或 WebTestCase;Foundry v2 工厂返回真实对象,不要调用 ->object();Pest 测试文件是匿名的,应使用 Factories 与 ResetDatabase trait,而非 #[ResetDatabase] 属性;用 expect()->and() 串联相关检查,每个测试只保留一个概念。输出契约包括失败的 ./vendor/bin/pest 输出(RED)、通过的运行结果、新增或修改的 tests/Pest.php 绑定,以及改动的测试文件与执行的命令。更多实现细节见 reference.md。