mcpField
D
doctrine-fixtures-foundry

doctrine-fixtures-foundry

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

关于 doctrine-fixtures-foundry

面向 Symfony 的技能,指导使用 Doctrine Fixtures Foundry 创建工厂、状态、故事和测试数据,并涵盖测试设置及 Foundry v1 到 v2 的迁移。

主要功能

  1. 01为实体创建精简默认值工厂
  2. 02使用不可变命名状态和关联
  3. 03通过故事组织共享场景
  4. 04提供 Foundry v1 到 v2 迁移指导

适用场景

  1. 01为测试创建关联实体
  2. 02生成可复现的开发数据
  3. 03迁移旧版 Foundry 工厂

安装

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

$npx skills add https://github.com/dev-toolings/superpowers-symfony --skill doctrine-fixtures-foundry

安装后在 Claude Code 中输入/doctrine-fixtures-foundry确认已加载。

附带文件reference.md

详细介绍

Doctrine Fixtures Foundry(Symfony)

适用场景

  • 为 Doctrine 实体创建测试或开发数据。
  • 编写 Foundry 工厂、命名状态、序列或故事。
  • 无需手动编写设置代码,即可为测试创建关联实体。
  • 将旧版 Foundry v1 工厂或 ->object() 调用迁移到 v2。

默认工作流

  1. 为每个实体生成一个工厂,并将 defaults() 限定为必填字段和唯一字段。
  2. 将每种变化表示为不可变的命名状态(admin()、published())。
  3. 让工厂通过 OtherFactory::new() 创建默认关联对象。
  4. 在故事中组织共享场景,并在每个测试类中重置数据库。
  5. 使用 Factory::assert() 对真实对象和仓库进行断言。

防护措施

  • 对每个唯一列使用 self::faker()->unique(),否则测试会发生冲突。
  • 不要调用 ->object() 或 ->_real():v2 工厂会返回真实对象。
  • 当失败必须可复现时,设置 Faker 种子(FOUNDRY_FAKER_SEED)。
  • 对于测试可以直接内联创建的简单数据,不要为其构建工厂。

渐进式披露

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

输出要求

  • 工厂包含最少的默认值、命名状态和关联默认值。
  • 如果多个测试需要共享场景,则使用故事。
  • 测试设置须接入 Foundry 扩展并使用 #[ResetDatabase]。

参考资料

  • reference.md

评论

支持 Markdown