I think you can unit test view any Razor as shown below:
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();
After that, you can parse the html to check the content with the spec.
source share