使用RazorEngine对ASP.NET MVC的Views进行UnitTest
有的时候我们需要对Razor最后生产的文本(HTML OR XML OR..)进行单元测试。
使用Nuget安装RazorEngine。
新建一个ASP.NET MVC项目,并且带有测试项目。
修改Index.cshtml
@using TestRazor.Models @model TestModel <div>This is a test page</div> <div>Name @Model.Name </div> <div>Age @Model.Age</div>
测试:
[TestClass] public class HomeControllerTest { [TestMethod] public void Index() { var config = new TemplateServiceConfiguration(); config.Debug = true; using (StreamReader sr = File.OpenText(@"E:\临时\TestRazor\TestRazor\Views\Home\Index.cshtml")) { var template = sr.ReadToEnd(); using (var service = RazorEngineService.Create(config)) { var html = service.RunCompile(template, "test", null, new TestModel { Name = "kklldog", Age = 10 }); Assert.IsTrue(html.Contains("This is a test page")); Assert.IsTrue(html.Contains("Name kklldog")); Assert.IsTrue(html.Contains("Age 10")); Console.WriteLine(html); } } } }
结果:
bingo!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。