【问题标题】:Umbraco Unit TestsUmbraco 单元测试
【发布时间】:2017-01-20 10:33:19
【问题描述】:

尝试使用 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);
}

任何指针都会很棒。

谢谢

【问题讨论】:

    标签: c# unit-testing umbraco7


    【解决方案1】:

    基本上有两种选择。您可以自己设置和模拟 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 包同步。

    【讨论】:

    • 你好,谢谢你,非常感谢,我打算在这周把它捡起来玩得很好,只是有一些东西需要紧急装箱。最终得到一些东西会很好。干杯
    猜你喜欢
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多