用途:为 API Platform 端点编写功能测试,覆盖集合、单项、创建、更新、删除,以及校验错误(422)和访问控制(401、403),并检查过滤器、分页与响应 JSON Schema。
主要能力:继承 ApiTestCase,用 Foundry 工厂(createOne、createMany)播种数据;用 #[ResetDatabase] 与 Factories trait 重置状态,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 请改用 ResetDatabase trait;断言分页时读取配置的每页条数而非硬编码。
限制与注意:需覆盖 404、422、401、403 等失败路径;受约束属性的类型错误在 5.0 为 422,在 4.4 及更早为 400。输出应包含新增测试类及其覆盖端点、使用的工厂与重置策略、含失败路径的测试运行输出。更多实现细节见 reference.md。