mcpField
F
functional-tests

functional-tests

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

关于 functional-tests

面向 Symfony 的测试技能,用于检查 HTTP 端点、服务、仓库和关键 URL。它帮助选择测试基类,并说明身份验证、数据库隔离和响应断言方法。

主要功能

  1. 01选择 HTTP、内核或单元测试
  2. 02检查端点响应与渲染 DOM
  3. 03使用 loginUser() 进行身份验证
  4. 04隔离数据库测试与测试数据
  5. 05添加 URL 冒烟测试

适用场景

  1. 01检查控制器响应和表单
  2. 02使用真实数据库测试服务
  3. 03覆盖需身份验证的路由
  4. 04为关键 URL 添加冒烟测试

安装

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

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

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

附带文件reference.md

详细介绍

功能测试(Symfony)

适用场景

  • 需要通过内核检查控制器或 HTTP 端点:状态码、重定向、渲染后的 DOM、表单错误、电子邮件。
  • 需要使用 KernelTestCase 对照真实数据库测试仓库或服务。
  • 需要通过 loginUser() 覆盖需身份验证或受角色限制的路由。
  • 需要为关键 URL 编写轻量级冒烟测试。

默认工作流

  1. 选择基类:HTTP 测试使用 WebTestCase,服务测试使用 KernelTestCase,纯逻辑测试使用普通的 TestCase。
  2. 直接调用 static::createClient()(不要先调用 bootKernel()),并使用 static::getContainer() 读取私有服务。
  3. 使用 $client->loginUser($user) 进行身份验证,而不是重新提交登录表单。
  4. 断言响应和 DOM:assertResponseIsSuccessful()、assertResponseRedirects()、assertSelectorTextContains()、assertEmailCount()。
  5. 使用 DAMADoctrineTestBundle PHPUnitExtension 隔离测试,并使用 Foundry 重置测试固件。
  6. 使用数据提供器和硬编码 URL 添加冒烟测试。

注意事项

  • 使用真实数据库和真实仓库;在涉及数据的测试中不要模拟 EntityManager 或仓库。
  • 对无效表单提交,使用 assertResponseIsUnprocessable() 断言 422(Symfony 8.0+ 行为)。
  • 测试环境不会加载 .env.local:请使用 .env.test 或 .env.test.local。
  • assertSessionHasFlashMessage() 需要 Symfony 8.1+。

渐进式披露

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

输出要求

  • 为每个测试类选择合适的基类。
  • 说明身份验证和数据库隔离策略。
  • 列出覆盖的状态码、DOM 断言和冒烟测试 URL。

参考资料

  • reference.md

评论

支持 Markdown