【问题标题】:How to use RazorEngine to test a custom html helper如何使用 RazorEngine 测试自定义 html 助手
【发布时间】:2017-01-25 07:57:49
【问题描述】:

我正在开发自己的 html 助手。现在我想测试一下。我选择的方式是使用RazorEngine 库来编译剃须刀代码并检查结果。

我从下面的示例开始:

string template = "<div>@Html.Raw('sdf')</div>";
Engine.Razor.AddTemplate("mytemplate", template);
var r = Engine.Razor.RunCompile("mytemplate");

但在这种情况下我遇到了错误 - Additional information: Errors while compiling a Template.

我发现了这个问题RazorEngine issues with @Html。但它看起来太旧了。

【问题讨论】:

    标签: c# asp.net-mvc razor razorengine


    【解决方案1】:

    Html.Raw 不是 Razor 的一部分。你可以改用@Raw

    例子:

    var template = "<div>@Html.Raw(\"<strong>Bold!</strong>\")</div>";
    template = template.Replace("@Html.Raw", "@Raw");
    var r = Engine.Razor.RunCompile(template, "templateKey");
    

    【讨论】:

      【解决方案2】:

      您究竟想在这里测试什么 - 您的 html 助手在做什么?

      对于 html 帮助程序来说,执行单元测试非常简单,HtmlHelper 类接受一个 ViewContext 类,您可以访问在调用您的方法时写入的流编写器。您需要做的就是用您的预期结果对此进行测试。

      无需创建 RazorViewEngine 实例,因为您测试的范围比您需要的要大得多。

      这是你需要做的:https://www.danylkoweb.com/Blog/the-ultimate-guide-to-unit-testing-in-aspnet-mvc-E2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-15
        • 2012-03-07
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        • 2014-12-04
        • 1970-01-01
        • 2014-03-07
        相关资源
        最近更新 更多