SuperAPI AI 工具集

spec-organization

测试与质量

查看项目

更新于 10-15 20:05

技能介绍

用途:该技能面向使用 RSpec 的 Rails 项目,帮助整理测试套件结构,使测试更易维护、运行更快、可读性更强。

主要能力:

  • 目录结构:给出标准 Rails RSpec 布局,包括 spec_helper.rb、rails_helper.rb、support/(含 factory_bot.rb、capybara.rb、shared_examples/)、factories/、models/、requests/、system/、services/、jobs/、mailers/、lib/。
  • 共享示例:用 RSpec.shared_examples 定义可复用逻辑,如 soft deletable、publishable;支持传参数与块形式;用 it_behaves_like 引用。
  • 共享上下文:用 RSpec.shared_context 共享 setup,如 authenticated user、with admin user;用 include_context 引用,也可按元数据自动包含。
  • 标签与过滤:为示例或 context 加标签(如 :slow、:external、:integration),用 rspec --tag 或 --tag ~ 筛选与排除;在 .rspec 或配置中设置过滤。
  • 元数据配置:按标签排除慢测试、按 type 包含 helper、用 around 钩子实现 freeze_time 等。
  • 自定义匹配器与辅助模块:在 support/ 中定义 matcher(如 have_json_key)与 helper 模块,并按 type 引入。
  • 命名与嵌套:describe 用类/模块、.类方法、#实例方法;context 以 when、with、without、given 开头;建议嵌套不超过 3 层。
  • 文件组织:一个类一个 spec 文件,spec 目录镜像 app 结构;也支持按功能组织。

使用方式:将共享示例与共享上下文放入 spec/support/,在 spec_helper.rb 或 rails_helper.rb 中配置元数据包含与过滤,用 rspec --tag 运行指定测试。

适用场景:Rails 项目的 RSpec 测试整理、复用测试逻辑、按标签筛选测试、统一命名与目录规范。

限制:资料未提供安装命令、收费标准、平台兼容性及具体性能数据。