SuperAPI AI 工具集

laravel-testing

测试与质量

查看项目

更新于 10-16 06:23

技能介绍

用途:为 Laravel 项目提供基于 Pest 的测试编写模式,覆盖测试结构、模拟与数据构造。

主要能力:

  • 三A模式:Arrange 用工厂构造数据与依赖,Act 执行单个操作,Assert 校验结果与数据库。
  • 测试 Action:从容器用 resolve() 解析被测 Action,使依赖递归解析;用 swap() 把依赖替换为 mock,并可用 withArgs() 闭包验证传入的模型实例与 DTO 值。
  • Mock 原则:只 mock 自己拥有的代码;不要直接 mock 外部 SDK,应通过 Service 层、Driver 契约、真实驱动、Null 驱动与 Facade 抽象。
  • Null Driver:无需 mock,无网络调用,结果确定,可通过实现接口的失败驱动测试异常场景,配置如 Config::set('payment.default', 'null')。
  • 工厂:使用模型工厂状态与关系,声明式工厂方法隐藏数据库细节;DTO 提供 testFactory() 生成一致数据。
  • 测试策略:Feature 测试用 actingAs、postJson 验证 HTTP 请求响应;Unit 测试隔离领域逻辑;并覆盖状态转换、关系、事务回滚、邮件通知等场景。

使用方式:在 Laravel 项目中按上述约定编写 Pest 测试,将测试文件按 testing-conventions 组织;依赖外部服务时改用容器 swap 或 null driver。

限制:文中未说明安装命令、版本要求、价格或平台信息;部分引用文档(testing-conventions.md、testing-factories.md、validation-testing.md 等)在资料中仅有指引,未提供完整内容。