SuperAPI AI 工具集

spree-testing

测试与质量

查看项目

更新于 10-15 23:57

技能介绍

用途:为 Spree 6 应用或扩展编写与运行自动化测试。服务端使用 RSpec + Factory Bot + spree_dev_tools(非 Minitest、非 fixtures);Dashboard 使用预配置的 Vitest 与 Playwright;Storefront 沿用 Next.js 自带方案。Spree 无服务端渲染后台,故不写 Capybara 特性测试,浏览器覆盖交给 Playwright。

安装:在 Gemfile 的 development/test 组加入 gem 'spree_dev_tools',运行 bin/rails g spree_dev_tools:install,生成器会配置 rspec 并写入 spec/support 下 spree、factory_bot、database_cleaner、active_job 等文件,加载工厂、默认 USD 商店、偏好重置、API v3 共享上下文与 JWT 助手。

运行:spree rspec 跑全量(web 容器内,RAILS_ENV=test),可传文件与行号及任意 rspec 参数;经典应用用 bundle exec rspec。新增迁移后执行 bin/rails db:test:prepare。

主要能力:提供客户、商品、变体、购物车、订单、履约、库存、支付、目录、退货、API 密钥与角色等工厂;购物车与订单是不同模型,完成流程用 Spree.carts_complete_workflow.call;价格按币种,用 price_in/amount_in。支持模型、工作流与钩子、订阅者、API v3 控制器规格,含 Store/Admin/Seller 共享上下文与状态码共享示例,断言使用 prefixed_id。Dashboard 用 pnpm test 与 pnpm test:e2e。扩展用 rake test_app 生成 dummy 应用后跑 rspec。

限制与注意:belongs_to 必填,工厂需构建所有非可选关联;非请求场景需设置 Spree::Current.store;StoreScopeGuard 可记录或抛错未限定查询;OrderWalkthrough 已弃用;异步订阅者需直接调用 handle 或 perform_enqueued_jobs;时间测试用 travel_to。具体收费与平台信息暂未提供。