使用RazorEngine对ASP.NET MVC的Views进行UnitTest_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用RazorEngine对ASP.NET MVC的Views进行UnitTest

使用RazorEngine对ASP.NET MVC的Views进行UnitTest

 2015/5/15 19:04:49  Agile.Zhou(kklldog)  程序员俱乐部  我要评论(0)
  • 摘要:有的时候我们需要对Razor最后生产的文本(HTMLORXMLOR..)进行单元测试。使用Nuget安装RazorEngine。新建一个ASP.NETMVC项目,并且带有测试项目。修改Index.cshtml@usingTestRazor.Models@modelTestModel<div>Thisisatestpage</div><div>Name@Model.Name</div><div>Age@Model.Age<
  • 标签:.net ASP.NET MVC 使用 view net

有的时候我们需要对Razor最后生产的文本(HTML OR XML OR..)进行单元测试。

使用Nuget安装RazorEngine。

新建一个ASP.NET MVC项目,并且带有测试项目。

修改Index.cshtml

class="brush:html;gutter:true;">@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!

发表评论
用户名: 匿名