SuperAPI AI 工具集

laravel-testing

测试与质量

查看项目

更新于 10-15 23:58

技能介绍

用途:为 Laravel 项目提供基于 Pest 的测试模式,适用于编写或修改测试、Mock、工厂与测试结构时参考。

主要能力:

  1. 测试哲学:隔离、可靠、可维护、快速、真实(用工厂而非硬编码值)。
  2. Triple-A 模式:Arrange 用工厂搭建世界状态,Act 只执行一个被测操作,Assert 验证结果,避免测试实现细节。
  3. Action 测试:用 resolve() 从容器解析 Action 以递归注入依赖;用 mock() 与 swap() 替换依赖 Action;用 withArgs() 闭包校验传入的模型实例与 DTO 值。
  4. Mock 原则:只 Mock 自己拥有的代码,不直接 Mock 外部 SDK;需要时通过 Service 层、Driver 契约、真实 Driver、Null Driver 与 Facade 做抽象。
  5. Null Driver:在 phpunit.xml 或 .env.testing 配置,无需 Mock、无网络调用、结果确定;可扩展 Null Driver 模拟失败场景。
  6. 工厂:模型工厂支持状态与关系;声明式工厂方法隐藏数据库字段细节;DTO 通过 HasTestFactory 与 DataTestFactory 提供 make()、collect() 等 API。
  7. 测试策略:Feature 测试覆盖 HTTP 请求响应周期,Unit 测试隔离领域逻辑。
  8. 避免脆弱测试:少 Mock、测行为而非实现、用工厂替代硬编码、只 Mock 协作者不 Mock 数据。

使用方式:在 Laravel 项目中安装 Pest,按 Triple-A 组织测试;Action 测试用 resolve() 解析、swap() 替换依赖;外部服务通过抽象层与 Null Driver 处理。

适用场景:Laravel 应用的单元测试与功能测试、Action 与 Service 层测试、支付等外部依赖的确定性测试。

限制:资料未提供具体安装命令、版本要求、性能数据与收费信息;示例代码需按项目实际命名空间调整。