mcpField
A
api-platform-tests

api-platform-tests

github.com/dev-toolings测试与质量22778 次安装3 周前更新
代码仓库

关于 api-platform-tests

面向 Symfony 的 API Platform 功能测试 Skill,涵盖数据库准备、身份验证和响应断言,并提示常见失败路径的处理。

主要功能

  1. 01端点增删改查测试
  2. 02验证与访问控制断言
  3. 03筛选和分页检查
  4. 04数据库重置与工厂设置
  5. 05JSON Schema 断言

适用场景

  1. 01测试集合与单项端点
  2. 02验证 401、403、404 和 422 响应
  3. 03检查筛选与分页
  4. 04准备隔离的测试数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dev-toolings/superpowers-symfony --skill api-platform-tests

安装后在 Claude Code 中输入/api-platform-tests确认已加载。

附带文件reference.md

详细介绍

Api Platform 测试(Symfony)

使用场景

  • 为 API Platform 端点编写功能测试:集合、单项、创建、更新、删除。
  • 断言验证错误(422)和访问控制(401、403)。
  • 检查筛选器、分页或响应的 JSON 架构。
  • 为 API 测试设置干净的数据库和测试数据。

默认工作流

  1. 扩展 ApiTestCase,并使用 Foundry 工厂(createOne、createMany)填充数据。
  2. 使用 #[ResetDatabase] 和 Factories trait 重置状态,由 DAMA 在每次测试后回滚事务。
  3. 调用 static::createClient()->request(),并断言状态码、内容类型和 assertJsonContains()。
  4. 使用 auth_bearer 进行身份验证,并覆盖匿名用户、所有者和其他用户的情况。
  5. 断言筛选和分页的 member 与 totalItems(仅在 hydra_prefix: true 时使用 hydra: 前缀)。
  6. 使用 assertMatchesResourceItemJsonSchema() 和 assertMatchesResourceCollectionJsonSchema() 断言结构。

注意事项

  • 发送 PATCH 时,使用 application/merge-patch+json 内容类型。
  • #[ResetDatabase] 需要 PHPUnit 10+ 和 Foundry 2.9:在 PHPUnit 9 上使用 ResetDatabase trait。
  • 也要覆盖失败路径:404、422、401、403。受约束属性上的类型错误,在 5.0 中为 422,在 4.4 及更早版本中为 400。
  • 读取已配置的每页条目数,不要在断言中硬编码页大小。

渐进式披露

  • 使用此文件了解执行规范和风险控制。
  • 需要深入了解实现细节时,请打开参考资料。

输出约定

  • 添加的测试类及其覆盖的端点。
  • 使用的工厂和重置策略。
  • 测试运行输出,包括失败路径。

参考资料

  • reference.md

评论

支持 Markdown