C# 如何使用RazorEngine测试自定义html帮助程序

C# 如何使用RazorEngine测试自定义html帮助程序,c#,asp.net-mvc,razor,razorengine,C#,Asp.net Mvc,Razor,Razorengine,我正在开发自己的html助手。现在我想测试一下。我选择的方法是使用库编译razor代码并检查结果 我从下面的示例开始: string template = "<div>@Html.Raw('sdf')</div>"; Engine.Razor.AddTemplate("mytemplate", template); var r = Engine.Razor.RunCompile("mytemplate"); string template=“@Html.Raw('sdf

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

我从下面的示例开始:

string template = "<div>@Html.Raw('sdf')</div>";
Engine.Razor.AddTemplate("mytemplate", template);
var r = Engine.Razor.RunCompile("mytemplate");
string template=“@Html.Raw('sdf')”;
Engine.Razor.AddTemplate(“mytemplate”,模板);
var r=Engine.Razor.RunCompile(“mytemplate”);
但在这种情况下,我遇到了一个错误-
附加信息:编译模板时出错。


我发现了这个问题。但它看起来太旧了

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");
var-template=“@Html.Raw(\”Bold!\”);
template=template.Replace(“@Html.Raw”,“@Raw”);
var r=Engine.Razor.RunCompile(模板,“templateKey”);

你到底想在这里测试什么-你的html助手在做什么

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

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

这就是你需要做的: