Nil*_*ils 8 asp.net-mvc unit-testing razor
他写道,当Scott Guthrie 第一次在Razor上写博客时
新的视图引擎实现将支持单元测试视图的能力(无需控制器或Web服务器,并且可以托管在任何单元测试项目中 - 无需特殊的app-domain).
但是,我找不到关于剃刀可测试性的其他声明(或示例).有指向使用CodelanguageServie或RazorGenerator或一些自制的渲染器 - 我称之为"设计".
目前是否可以通过简单的方式对剃刀视图进行单元测试?(在asp.net mvc应用程序中,即.Nancy Nx在它的nancy.testing-package中带来了可测试性.)
(目前我不在乎是否应该测试视图.)
我知道有很多像这样的问题,但大多数问题都比较陈旧......
小智 1
我认为您可以对任何 Razor 视图进行单元测试,如下所示:
ViewResult v = View("~/Views/Home/Index.cshtml");
if (string.IsNullOrEmpty(v.ViewName))
v.ViewName = RouteData.GetRequiredString("action");
ViewEngineResult result = null;
StringBuilder sb = new StringBuilder();
StringWriter textwriter = new StringWriter(sb);
HtmlTextWriter htmlwriter = new HtmlTextWriter(textwriter);
if (v.View == null)
{
result = new ViewEngineResult(new RazorView(ControllerContext,"~/Views/Home/Index.cshtml", null,false,null), new RazorViewEngine());
v.View = result.View;
}
ViewContext viewContext = new ViewContext(ControllerContext, v.View, ViewData, TempData, htmlwriter);
v.View.Render(viewContext, htmlwriter);
string html = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
之后,您可以解析 html 以检查内容是否符合规范。
| 归档时间: |
|
| 查看次数: |
1515 次 |
| 最近记录: |