2017-01-25 48 views
0

我正在自己的html帮手上工作。现在我想测试它。我选择的方式是使用RazorEngine库来编译剃刀代码并检查结果。如何使用RazorEngine测试自定义html帮助

嗯,我已经开始与样品象下面这样:

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

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

究竟是你想在这里测试 - 什么是你的HTML帮助做什么?

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

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

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

相关问题