c# - Umbraco 单元测试

标签 c# unit-testing umbraco7

尝试利用 PublishedContentRequest 方法来执行多个单元测试。由于这是纯粹用于单元测试的单独项目,因此没有 Umbraco 上下文。

只是想知道是否有其他人在以这种方式测试 Umbraco 时遇到问题。确实需要了解它所期望的 uri。例如“contact-us”、“/contact-us”或“http://localhost/contact-us”。还想知道如何正确设置路由上下文。

目前有这样的事情:

private static void SetupControllerContext(UmbracoContext umbCtx, ControllerBase controller)
    {
        var contextBase = umbCtx.HttpContext;
        var pcr = new PublishedContentRequest(new Uri("/contact-us"), umbCtx.RoutingContext);

        var routeData = new RouteData();
        var routeDefinition = new RouteDefinition
        {
            PublishedContentRequest = pcr
        };
        routeData.DataTokens.Add("umbraco-route-def", routeDefinition);
        controller.ControllerContext = new ControllerContext(contextBase, routeData, controller);
}

任何指针都会很棒。

谢谢

最佳答案

基本上有两种选择。您可以自己设置和模拟 Umbraco,或者您可以从 Github 获取 Umbraco 源代码并构建项目并使用他们的 Umbraco.Tests 帮助程序库,使得模拟和设置 Umbraco 部件非常容易,足以进行单元测试。

实际上有两篇关于这个主题的好文章。

对于深入的、自己的观点,这是一篇很好的帖子和教程:

单元测试 Umbraco - 合理

http://skrift.io/articles/archive/unit-testing-umbraco-plausible/

有关自行部署的提示,以及有关如何使用 Umbraco.Tests 库的更多信息,请查看这篇文章:

http://blog.aabech.no/archive/the-basics-of-unit-testing-umbraco/

两者都在 Github 上提供了源代码,因此您可以自己尝试他们的技术。

就我个人而言,我正在研究这个问题,并决定采用 Umbraco.Tests 库方法。然而,我真的希望有一个 Nuget 存储库,我可以确保测试库与我的 Umbraco nuget 包同步。

关于c# - Umbraco 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761494/

相关文章:

c# - 开放泛型类型的 CaSTLe Windsor Complex 注册

c# - 更改 DataGridView 中按钮的颜色

java - 无法进行单元测试 - Unitils、Hibernate

c# - 选择并合并一系列单元格

c# - Web API 未返回任何数据结果

angularjs - Umbraco 7 自定义属性编辑器错误

c# - 使用 Umbraco.Core.Persistence 从带有枚举的模型创建数据库表

javascript - 在自定义 Umbraco 数据类型中加载 $scope.model.value 时格式错误的 JSON

ios - 从框架项目进行单元测试时应用程序崩溃

android - 单元测试: Observer onChanged should be called twice instead of once