博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mock HttpContext in TDD的几种简单应用
阅读量:6641 次
发布时间:2019-06-25

本文共 1265 字,大约阅读时间需要 4 分钟。

1)First case for an sample user:

    
public
 
class
 MockHttpContext : HttpContextBase
    {
        
private
 
readonly
 IPrincipal _user 
=
 
new
 GenericPrincipal(
                 
new
 GenericIdentity(
"
username
"
), 
null
 
/*
 roles 
*/
);
        
public
 
override
 IPrincipal User
        {
            
get
            {
                
return
 _user;
            }
            
set
            {
                
base
.User 
=
 value;
            }
        }
        
public
 MockHttpContext(
string
 UserName)
        {
            _user 
=
 
new
 GenericPrincipal(
new
 GenericIdentity(UserName), 
null
);
        }
    }

 上面测试简单模拟了一个已经登录的带某用户名的用户的上下文;

2)two function  for quick switch login state

 

        
protected
 
void
 LoginOut()
        {
            httpMock.Setup(h 
=>
 h.User.Identity.IsAuthenticated).Returns(
false
);
            DefaultHttpContext 
=
 httpMock.Object;
            BaseController.ControllerContext 
=
 
new
 ControllerContext()
                                                   {
                                                       Controller 
=
 BaseController,
                                                       RequestContext 
=
                                                           
new
 RequestContext(DefaultHttpContext, 
new
 RouteData())
                                                   };
            BaseController.SetCurrentUser(loginName);
        }
        
protected
 
void
 LoginIn()
        {
            httpMock.Setup(h 
=>
 h.User.Identity.IsAuthenticated).Returns(
true
);
            DefaultHttpContext 
=
 httpMock.Object;
            BaseController.ControllerContext 
=
 
new
 ControllerContext()
            {
                Controller 
=
 BaseController,
                RequestContext 
=
                    
new
 RequestContext(DefaultHttpContext, 
new
 RouteData())
            };
            BaseController.SetCurrentUser(loginName);
        }

 

 

本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2011/07/18/2109887.html,如需转载请自行联系原作者

你可能感兴趣的文章
我的友情链接
查看>>
JS 有趣的应用 : Array.prototype.slice.call(arguments,0)
查看>>
Linux命令:特殊权限SUID、GUID、Sticky
查看>>
<文明开房 低调叫床> 高考满分作文
查看>>
【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第四步)(4)...
查看>>
【linux系统优化】Selinux介绍及关闭方法
查看>>
阶段总结
查看>>
我的友情链接
查看>>
Spring aop 前置通知、后置通知、返回通知、 异常通知 、后置通知
查看>>
Android中选项卡TabHost的基本使用
查看>>
数据库优化的三个例子
查看>>
Vintage、滚动率、迁移率的应用
查看>>
我的友情链接
查看>>
[转载]六年软件测试感悟
查看>>
soap本地测试
查看>>
一个数组中只有两个数是不同的,其他数字是成对出现的,下面代码可将该数组中不同的两数字找出并输出...
查看>>
Kendo UI常用示例汇总(二十一)
查看>>
高科技机器人能否成为人类未来社会的忠实伙伴?
查看>>
05-Windows Server 2012 R2 会话远程桌面-标准部署-RD连接代理高可用性(RemoteApp)
查看>>
150809210系统
查看>>