Asp.net Mvc Framework 十(测试方法及Filter的示例)

简介: 示例下载:http://files.cnblogs.com/chsword/MyTestMvc.rar 顺遍说一下建立测试的方法 本身Asp.netMvc是提供有测试功能的 在新建Asp.netMVCApplication时,点击确定,会跳出一个Create Project Test的询问 如果选Yes就自动建立一个 "工程名+Test"的测试工程 测试工程要引用Rhino.
示例下载:
http://files.cnblogs.com/chsword/MyTestMvc.rar

顺遍说一下建立测试的方法
本身Asp.netMvc是提供有测试功能的
在新建Asp.netMVCApplication时,点击确定,会跳出一个Create Project Test的询问
如果选Yes就自动建立一个 "工程名+Test"的测试工程
测试工程要引用Rhino.Mock(最新版本3.4)这一开源项目(下载地址 http://www.ayende.com/projects/rhino-mocks/downloads.aspx)
测试代码没有什么好说的了,看了示例自然了解,Scott的 MockHelpers使测试更加方便

可以利用类似以下代码进行测试
    [TestMethod]
        
public   void  Index()  {
            HomeController home 
= new HomeController();
            var viewengin 
= new FakeViewEngine();
            home.ViewEngine 
= viewengin;
            MockRepository mock 
= new MockRepository();
            
using (mock.Record()) {
                mock.SetFakeControllerContext(home);
            }

            
using (mock.Playback()) {
                home.Index();
                Assert.AreEqual(
"Index", viewengin.ViewContext.ViewName);
            }

        }

示例说明
示例中有个登录功能
有两个页面
/Post/Index页面只有登录后才能查看
/Post/Post页面只有登录后的admin用户才能查看
否则就会Error
在验证登录时我写了一个扩展方法
     public   static   class  ControllerExtension
    
{
        
public static bool IsPost(this Controller controller) {
            
return controller.Request.Form.Count > 0;
        }

    }

登录时我使用Session来保存用户登录信息

所有用户信息我在 Global中进行初始化
            RegisterRoutes(RouteTable.Routes);
            
// 将Application代替数据库用
            Application[ " Posts " =   new  List < Post > (); // 一个账号集合
            Application[ " Accounts " =   new  List < Account > (); // 一个帖子集合
            
// 初始化两个账号
            List < Account >  la  =  Application[ " Accounts " as  List < Account > ;
            la.Add(
new  Account() // 这个是管理员
             {
                Username 
= "admin",
                Password 
= "admin"
            }
);
            la.Add(
new  Account() // 这个是普通用户
             {
                Username 
= "user",
                Password 
= "user"
            }
);


具体的内容看代码就行了,感冒了...很是难受...手纸用了三卷了....( 乱世重典)
Asp.net Mvc Framework 系列
相关文章
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
83 7
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
122 0
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
87 0
|
7月前
|
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
195 0
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
99 0
net MVC中的模型绑定、验证以及ModelState
net MVC中的模型绑定、验证以及ModelState 模型绑定 模型绑定应该很容易理解,就是传递过来的数据,创建对应的model并把数据赋予model的属性,这样model的字段就有值了。
1709 0
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
252 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等