asp.net-mvc-2 – 如何在asp.net mvc 2中使用fakeiteasy假冒用户
发布时间:2020-12-16 03:53:08 所属栏目:asp.Net 来源:网络整理
导读:我刚开始学习和使用ASP.NET MVC 2,并且更多地参与单元测试我的代码.我的问题是如何通过在我的测试中传入凭据来模拟用户登录. 我正在使用MSpec,并试图让我的头脑周围的假冒为了写我的测试.到目前为止,我相信我已经正确地编写了一个测试(它通过了测试条件),以
我刚开始学习和使用ASP.NET MVC 2,并且更多地参与单元测试我的代码.我的问题是如何通过在我的测试中传入凭据来模拟用户登录.
我正在使用MSpec,并试图让我的头脑周围的假冒为了写我的测试.到目前为止,我相信我已经正确地编写了一个测试(它通过了测试条件),以供未经身份验证的用户尝试访问页面时使用. Subject( typeof( HomeController ) )] public class context_for_a_home_controller_for_not_logged_user { protected static HomeController HomeController; Establish context = () => { // Create controller HomeController = new HomeController(); HomeController.ControllerContext = A.Fake<ControllerContext>(); }; } [Subject(typeof(HomeController))] public class when_the_home_page_is_requested : context_for_a_home_controller_for_not_logged_user { static ActionResult result; Because of = () => result = HomeController.Index(); It should_return_the_log_in_page_if_user_not_logged_in = () => { result.ShouldBeAView().And().ShouldUseDefaultView(); }; } 到现在为止还挺好.但是,我想测试经过身份验证的用户何时命中主控制器的情况.我坚持如何模拟经过身份验证的用户,欢迎任何帮助或建议. TIA, 大卫 解决方法
在与FakeItEasy的创建者Patrik Hagne取得联系后,他想出了以下内容:
[Subject( typeof( HomeController ) )] public class context_for_a_home_controller_for_logged_user { protected static HomeController HomeController; Establish context = () => { // Create controller HomeController = new HomeController(); HomeController.ControllerContext = A.Fake<ControllerContext>(); var fakePrincipal = A.Fake<IPrincipal>(); var fakeIdentity = new GenericIdentity( "username" ); A.CallTo( () => fakePrincipal.Identity ).Returns( fakeIdentity ); A.CallTo( () => HomeController.ControllerContext.HttpContext.User ).Returns( fakePrincipal ); }; } 这就是诀窍!谢谢Patrik! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET CompareValidator问题
- asp.net-mvc – 用于大型视频文件的MVC ActionResult
- asp.net-mvc-3 – 通过使用jQuery Script调用URL.Action生成
- asp.net – Razor Host Factory错误
- .net – 我应该如何设计一个允许IoC的类库,但不依赖于特定的
- asp.net – 通过Button控制Fire AsyncFileUpload
- asp.net-mvc – Bower,Grunt和Yeoman如何适应Visual Studio
- asp.net-mvc – 阻止MVC控制器动作的后台工作者
- asp.net – 如何管理具有非固定列号的转发器
- asp.net-mvc – asp.net mvc无法访问基本控制器中的cookie数
推荐文章
站长推荐
- asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头
- asp.net-mvc – 在构建时尝试构建ASP MVC视图时出
- ASP.NET 2.5前缀ctl00和ASP.NET 4不是前缀ctl00
- asp.net-mvc – 在bootstrap模式中使用时,MVC中的
- asp.net-mvc – 转换常规的MVC网站,用于电话沟通
- asp.net-mvc – 从web.Config授权Controller级别
- asp.net-mvc – ASP.NET MVC 5为隐藏输入渲染不同
- asp.net – MVC 4可以在.net 3.5上运行吗?
- asp.net核心中的Request.CreateResponse
- asp.net-mvc-3 – ASP.NET MVC:如何返回304“未
热点阅读