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