关于 api-platform-tests
面向 Symfony 的 API Platform 功能测试 Skill,涵盖数据库准备、身份验证和响应断言,并提示常见失败路径的处理。
主要功能
- 01端点增删改查测试
- 02验证与访问控制断言
- 03筛选和分页检查
- 04数据库重置与工厂设置
- 05JSON Schema 断言
适用场景
- 01测试集合与单项端点
- 02验证 401、403、404 和 422 响应
- 03检查筛选与分页
- 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 测试设置干净的数据库和测试数据。
默认工作流
- 扩展
ApiTestCase,并使用 Foundry 工厂(createOne、createMany)填充数据。 - 使用
#[ResetDatabase]和Factoriestrait 重置状态,由 DAMA 在每次测试后回滚事务。 - 调用
static::createClient()->request(),并断言状态码、内容类型和assertJsonContains()。 - 使用
auth_bearer进行身份验证,并覆盖匿名用户、所有者和其他用户的情况。 - 断言筛选和分页的
member与totalItems(仅在hydra_prefix: true时使用hydra:前缀)。 - 使用
assertMatchesResourceItemJsonSchema()和assertMatchesResourceCollectionJsonSchema()断言结构。
注意事项
- 发送
PATCH时,使用application/merge-patch+json内容类型。 #[ResetDatabase]需要 PHPUnit 10+ 和 Foundry 2.9:在 PHPUnit 9 上使用ResetDatabasetrait。- 也要覆盖失败路径:404、422、401、403。受约束属性上的类型错误,在 5.0 中为 422,在 4.4 及更早版本中为 400。
- 读取已配置的每页条目数,不要在断言中硬编码页大小。
渐进式披露
- 使用此文件了解执行规范和风险控制。
- 需要深入了解实现细节时,请打开参考资料。
输出约定
- 添加的测试类及其覆盖的端点。
- 使用的工厂和重置策略。
- 测试运行输出,包括失败路径。
参考资料
reference.md
评论
支持 Markdown