如何使用RazorEngine测试自定义html助手

时间:2017-01-25 07:57:50

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

我正在使用自己的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。但它看起来太旧了。

2 个答案:

答案 0 :(得分:0)

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");

答案 1 :(得分:0)

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

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

无需创建RazorViewEngine实例,因为您测试的范围远大于您所需的范围。

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