关于 umbraco-testing
面向 Umbraco backoffice 扩展开发者的测试路由技能,帮助选择单元、模拟 API、模拟 backoffice 或端到端测试,并指向测试数据和辅助技能。
主要功能
- 01按测试层级选择测试方案
- 02单元测试与 MSW 测试指引
- 03模拟 backoffice 测试指引
- 04端到端测试指引
- 05提供测试数据与辅助技能入口
适用场景
- 01为扩展逻辑选择测试方式
- 02测试 API 错误与加载状态
- 03无需 .NET 检查扩展界面
- 04针对 Umbraco 验证完整工作流
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-testing安装后在 Claude Code 中输入/umbraco-testing确认已加载。
详细介绍
Umbraco 测试 - 路由
用于测试 Umbraco 后台扩展的入口点。使用此技能确定要采用哪种测试方法,然后调用相应的专用技能。
快速参考
| 级别 | 技能 | 适用场景 |
|---|---|---|
| 1 | umbraco-unit-testing | 隔离测试上下文、元素和控制器 |
| 2 | umbraco-msw-testing | 测试 API 错误处理和加载状态 |
| 3 | umbraco-mocked-backoffice | 在完整后台中测试扩展 UI(无需 .NET) |
| 4 | umbraco-e2e-testing | 针对真实 Umbraco 测试完整工作流 |
支持技能
| 技能 | 用途 |
|---|---|
umbraco-test-builders | 用于测试数据的 JsonModels.Builders |
umbraco-playwright-testhelpers | testhelpers 的完整 API 参考 |
umbraco-example-generator | 生成可测试的示例扩展 |
决策指南
选择单元测试(umbraco-unit-testing)
适用于快速、隔离的测试:
- 上下文逻辑和状态管理
- Lit 元素渲染和 shadow DOM
- 可观察对象订阅和状态变更
- 控制器和实用函数
速度:毫秒级 | 后端:无 | 浏览器:Playwright launcher
选择 MSW 测试(umbraco-msw-testing)
适用于无需后端即可测试 API 行为:
- API 错误处理(404、500、验证)
- 加载旋转指示器和骨架屏状态
- 网络重试行为
- 响应边界情况和超时
速度:快 | 后端:无(模拟) | 浏览器:Playwright
选择模拟后台(umbraco-mocked-backoffice)
适用于在真实的 UI 中测试扩展:
- 扩展能否正确显示在后台
- 工作区视图、操作和页脚应用能否正常工作
- 扩展注册和清单加载
- 无需配置 .NET 的视觉集成
速度:快 | 后端:无(MSW) | 浏览器:Chromium
选择 E2E 测试(umbraco-e2e-testing)
适用于完整的验收测试:
- 完整的端到端用户工作流
- 数据持久化和检索
- 身份验证和权限
- 真实 API 响应和行为
速度:较慢 | 后端:运行中的 Umbraco | 浏览器:Chromium
工作流
- 确定测试内容 - 上下文逻辑、元素渲染、API 处理或完整工作流
- 选择测试级别 - 使用上方的决策指南
- 调用技能 - 每种测试技能都包含完整的设置说明、模式和示例
- 生成测试数据 - 如有需要,使用
umbraco-test-builders
完整测试金字塔
经过全面测试的扩展会使用多个测试级别。以下是完整的测试金字塔:
┌─────────────┐
│ E2E Tests │ ← Real backend, complete workflows
│ (7 tests) │
└─────────────┘
┌─────────────────────────┐
│ Mocked Backoffice │ ← No backend, realistic UI
│ MSW: 6 | Mock Repo: 6 │
└─────────────────────────┘
┌─────────────────────────────────────┐
│ Unit Tests │ ← Fast, isolated
│ (13 tests) │
└─────────────────────────────────────┘
各级别的测试数量
| 级别 | 测试数 | 速度 | 是否需要后端 |
|---|---|---|---|
| 单元测试 | 13 | ~1s | 无 |
| MSW 模拟 | 6 | ~30s | 无(MSW) |
| 模拟存储库 | 6 | ~37s | 无 |
| E2E | 7 | ~15s | 真实 Umbraco |
| 总计 | 32 |
工作示例:tree-example
tree-example 展示了一个项目中采用的所有测试方法:
cd /path/to/tree-example/Client
# Unit tests (fast, no server)
npm test # 13 tests, ~1s
# MSW mocked tests (requires mocked backoffice)
npm run test:mocked:msw # 6 tests, ~30s
# Mock repository tests (requires mocked backoffice)
npm run test:mocked:repo # 6 tests, ~37s
# E2E tests (requires real Umbraco)
URL=https://localhost:44325 \
[email protected] \
UMBRACO_USER_PASSWORD=yourpassword \
npm run test:e2e # 7 tests, ~15s
位置:umbraco-backoffice/examples/tree-example/Client/
参考示例
Umbraco-CMS 仓库中包含大量测试示例:
| 类型 | 位置 |
|---|---|
| 单元测试 | src/Umbraco.Web.UI.Client/examples/*/ |
| MSW 处理器 | src/Umbraco.Web.UI.Client/src/mocks/handlers/ |
| E2E 测试 | tests/Umbraco.Tests.AcceptanceTest/tests/ |
| 扩展 | src/Umbraco.Web.UI.Client/examples/(27 个示例) |
| 完整测试金字塔 | umbraco-backoffice/examples/tree-example/Client/ |
评论
支持 Markdown