用途:为 PHP 应用编写单元测试与集成测试,适用于使用 PHPUnit 或 Pest 的项目。
主要能力:
- 测试框架与结构:使用 PHPUnit(9/10+)或 Pest,测试按 Unit/、Integration/、Feature/ 组织,测试类继承 TestCase。
- TDD 工作流:遵循 Red-Green-Refactor,先写失败测试,再实现最小逻辑,最后重构。
- 断言与数据提供器:优先用 assertSame(===)而非 assertEquals 以避免类型强制转换,也可用 assertCount()、assertMatchesRegularExpression();数据提供器在 PHPUnit 10+ 用 #[DataProvider('statusProvider')],Pest 用 dataset。
- 依赖隔离:用 createMock() 模拟依赖,但不要模拟简单数据对象;测试需独立可重复,数据库测试须使用事务或 SQLite :memory:。
- 覆盖率与自动化:目标行覆盖率 80%+,用 phpunit.xml 白名单指定目录;通过 GitHub Actions 或 GitLab CI 在每次 PR 运行测试。
反模式:不测试私有方法,只通过公共接口测试;不过度模拟内部实现,只模拟外部边界;单元测试中不使用真实网络或数据库;不盲目追求覆盖率指标,优先有意义的断言。
限制:资料未提供具体安装命令、版本兼容细节、完整代码示例与配置模板,相关实现示例需参考原文的实现示例部分。