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();
之后,您可以解析 html 以检查内容是否符合规范。
| 归档时间: | 
 | 
| 查看次数: | 1515 次 | 
| 最近记录: |