用途
Umbraco Testing 是测试 Umbraco 后台扩展时的入口型(Router)技能。按照资料描述,它的作用是:先确定应该采用哪一种测试方式,再调用对应的专门技能。它本身定位为路由与决策指南,而不是具体的测试实现技能。
主要能力
该技能提供以下内容:
- 快速参考表:列出各测试层级所对应的技能及适用时机。
- 决策指南:分别说明何时选择 Unit Testing、MSW Testing、Mocked Backoffice、E2E Testing。
- 配套技能清单:包括 test builders(用于测试数据)、Playwright testhelpers(完整 API 参考)、example generator(生成可测试的示例扩展)。
- 测试金字塔示意与各层测试数量、速度、是否需要后端等参考信息。
- 一个可运行示例(tree-example)的命令,以及 Umbraco-CMS 仓库中的参考示例位置。
使用方式
资料给出的工作流为:
- 确定要测试的内容——context 逻辑、元素渲染、API 处理,还是完整工作流。
- 依据决策指南选择测试层级。
- 调用对应技能——各测试技能自带设置、模式与示例。
- 如需生成测试数据,使用 umbraco-test-builders。
四个层级的判断依据如下(据资料):
- 单元测试(umbraco-unit-testing):适合快速、隔离的测试,例如 context 逻辑与状态管理、Lit 元素渲染与 shadow DOM、Observable 订阅与状态变化、控制器与工具函数。速度以毫秒计,无后端,浏览器使用 Playwright launcher。
- MSW 测试(umbraco-msw-testing):适合在没有后端的情况下测试 API 行为,例如 API 错误处理(404、500、校验)、加载 spinner 与 skeleton 状态、网络重试行为、响应边界情况与超时。速度快,后端为 mock,浏览器为 Playwright。
- 模拟后台(umbraco-mocked-backoffice):适合在接近真实的 UI 中测试扩展,例如扩展是否正确出现在后台、workspace 视图/操作/footer 应用是否工作、扩展注册与 manifest 加载、无需 .NET 环境下的可视化集成。速度快,后端为 MSW,浏览器为 Chromium。
- E2E 测试(umbraco-e2e-testing):适合完整验收测试,例如端到端完整用户工作流、数据持久化与读取、认证与权限、真实 API 响应与行为。速度较慢,需要运行中的 Umbraco 后端,浏览器为 Chromium。
示例与参考
资料提供 tree-example 作为在单一项目中演示全部测试方式的示例,位置为 umbraco-backoffice/examples/tree-example/Client/,并给出命令:
cd /path/to/tree-example/Client
Unit tests(快速,无需服务器)
npm test # 13 tests, ~1s
MSW mocked tests(需要 mocked backoffice)
npm run test:mocked:msw # 6 tests, ~30s
Mock repository tests(需要 mocked backoffice)
npm run test:mocked:repo # 6 tests, ~37s
E2E tests(需要真实 Umbraco)
URL=https://localhost:44325
UMBRACO_USER_LOGIN=admin@example.com
UMBRACO_USER_PASSWORD=yourpassword
npm run test:e2e # 7 tests, ~15s
参考示例位置(据资料):单元测试位于 src/Umbraco.Web.UI.Client/examples/*/;MSW handlers 位于 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/。
适用场景
适用于为 Umbraco 后台扩展制定测试策略、选择测试层级,并据此进入对应专门测试技能的开发者。
限制
资料未提供该技能的具体收费、价格、平台支持范围、安装命令等细节,这些信息暂未提供。