Umbraco 测试示例现已支持 Umbraco 17

发布: (2026年2月26日 GMT+8 01:48)
3 分钟阅读
原文: Dev.to

Source: Dev.to

工具

名称描述
xUnit v3测试框架。你也可以使用任何你喜欢的测试框架。
NSubstitute用于模拟的库。任何模拟库都可以使用。这个项目并没有大量使用模拟,但例如 IPublishedValueFallback 是任何已发布内容项的必需参数,即使你实际上并未使用它。插入一个模拟对象会更方便。
Test Containers在运行测试时自动创建 Docker 容器。它用于创建一个空的 SQL Server 数据库,并在测试结束后自动清理。

与 Umbraco 16 相比的显著差异

数据库初始化

SqlServerDatabase 资源不再在 SQL Server 测试容器内部创建第二个数据库。Umbraco 16 会在启动时如果数据库不存在就愉快地创建一个新数据库,而 Umbraco 17 不会这样做,并且会抛出连接错误。

对于普通的 Umbraco 使用而言,这一变化并没有显著影响。如果你同时使用 EF Core,可能需要在这里多加注意。

集成测试的基础 URL

WebsiteFixture 现在在创建后台 HttpClient 时会设置一个固定的基础 URL。如果需要使用不同的域名,可以调整此基础 URL,但它 必须 使用 https 协议。相较于 Umbraco 16,Umbraco 17 默认要求后台端点使用 HTTPS,并会拒绝 HTTP 请求。

你可以在以下提交中看到所有更改:
https://github.com/D-Inventor/automated-testing-in-umbraco/commit/573ef96a155c390ba3d4383bf555f9ff5723b3b4

附加说明

我对本仓库中待测试的示例网站做了一些关注。主页现在使用了稍微更精致的模板,但全部都是静态内容。我尚未把所有东西全部串联起来,因为主要目标是演示 TDD。

我注意到 Playwright 的 C# 版本不支持截图比较,这会阻止对模板更改进行快照测试。JavaScript 版本则支持,因此若想进行更全面的端到端测试,需要创建等价的管理 API 客户端和场景构建器。

就这些

这就是我想分享的全部内容。希望你查看仓库、点个星,并告诉我这些测试示例是否对你有帮助。感谢阅读 😊

0 浏览
Back to Blog

相关文章

阅读更多 »

我们与战争部的协议

与五角大楼达成机密AI部署协议 昨天我们与五角大楼达成协议,部署先进的AI系统于机密…