使用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!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Hibernate_day04总结

更多资源分享就在【Java帮帮】微信公众号与QQ空间 Hibernate_day04总结 今日内容 l Hibernate的二级缓存 1.1 上次课内容回顾: ...

2798
来自专栏滕先生的博客

XML解析方式及GData框架使用一、概念二、XML解析SAM方式(只读)三、DOM方式解析(可读写)四、GData写入功能,生成XML

2626
来自专栏智能大石头

关于自定义控件设计时如何把属性写入aspx中的研究(上)

如何通过继承GridView来修改在设计时绑定数据源时自动生成的ASP.Net代码? 具体情况是这样的,ObjectDataSource绑定到实体类,Grid...

2088
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列13

一、说出一些常用的类,包,接口,请各举5个 常用的类:BufferedReader BufferedWriter FileReader FileWirter ...

2583
来自专栏ZKEASOFT

纸壳CMS3.0中的规则引擎

纸壳CMS3.0中的规则引擎,用于计算通用表达试结果。通常业务逻辑总是复杂多变的,使用这个规则引擎可以灵活的修改计算表达式。

2277
来自专栏微信公众号:Java团长

Java POI 导出EXCEL经典实现

在web开发中,有一个经典的功能,就是数据的导入导出。特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出...

872
来自专栏racaljk

Julia体验 语言基础

以前听说过Julia,不过那时候官网还处于时不时宕机状态,最近Julia发布了1.0 released版本到处都是它的资讯,官网良心自带简体中文,趁着热度我也来...

812
来自专栏MasiMaro 的技术博文

PE文件详解(四)

本文转自小甲鱼的PE文件详解系列原文传送门 到此为止,小甲鱼和大家已经学了许多关于 DOS header 和 PE header 的知识。接下来就该轮到Se...

651
来自专栏kalifaの日々

食物链POJ1182总结

这道题是用并查集来解。并查集可以高效的查找某个元素是否属于一个集合。 敲代码过程中一次遇到了如下问题: new 的使用问题 想开辟一块放100个整形变量的空间...

3919
来自专栏大内老A

在ASP.NET MVC中使用“RadioButtonList”和“CheckBoxList”

在《为HtmlHelper添加一个RadioButtonList扩展方法》中我通过对HtmlHelper和HtmlHelper<Model>的扩展使我们可以采用...

1987

扫码关注云+社区