asp.net-mvc – ASP.NET MVC – 使用Moq框架对RenderPartialView
发布时间:2020-12-16 00:12:52 所属栏目:asp.Net 来源:网络整理
导读:我正在使用这个帮助方法将我的PartialViewResult转换为字符串并将其作为Json – http://www.atlanticbt.com/blog/asp-net-mvc-using-ajax-json-and-partialviews/返回 我的问题是我使用Moq来模拟控制器,每当我运行使用这个RenderPartialViewToString()方法的
我正在使用这个帮助方法将我的PartialViewResult转换为字符串并将其作为Json –
http://www.atlanticbt.com/blog/asp-net-mvc-using-ajax-json-and-partialviews/返回
我的问题是我使用Moq来模拟控制器,每当我运行使用这个RenderPartialViewToString()方法的单元测试时,我得到了“对象引用未设置为对象的实例”. ControllerContext上的错误. private ProgramsController GetController() { var mockHttpContext = new Mock<ControllerContext>(); mockHttpContext.SetupGet(p => p.HttpContext.User.Identity.Name).Returns("test"); mockHttpContext.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true); // Mock Repositories var mockOrganizationRepository = new MockOrganizationRepository(MockData.MockOrganizationsData()); var mockIRenderPartial = new BaseController(); var controller = new ProgramsController(mockOrganizationRepository,mockIRenderPartial); controller.ControllerContext = mockHttpContext.Object; return controller; } 这会返回一个代理控制器,也许这就是我收到错误的原因.知道如何对此进行单元测试吗? 非常感谢你. 解决方法
尝试这个:
public static void SetContext(this Controller controller) { var httpContextBase = new Mock<HttpContextBase>(); var httpRequestBase = new Mock<HttpRequestBase>(); var respone = new Mock<HttpResponseBase>(); var session = new Mock<HttpSessionStateBase>(); var routes = new RouteCollection(); RouteConfigurator.RegisterRoutesTo(routes); httpContextBase.Setup(x => x.Response).Returns(respone.Object); httpContextBase.Setup(x => x.Request).Returns(httpRequestBase.Object); httpContextBase.Setup(x => x.Session).Returns(session.Object); session.Setup(x => x["somesessionkey"]).Returns("value"); httpRequestBase.Setup(x => x.Form).Returns(new NameValueCollection()); controller.ControllerContext = new ControllerContext(httpContextBase.Object,new RouteData(),controller); controller.Url = new UrlHelper(new RequestContext(controller.HttpContext,new RouteData()),routes); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net中程序水晶报告的正确形式是什么?和视觉基础
- asp.net-mvc – Bug? ASP.NET MVC 2中的客户端验证导致Val
- asp.net-mvc – ASP.NET MVC Master Detail Entry表单
- asp.net-mvc – MVC(ASP.NET MVC)乐队3层架构如何协同工作?
- asp.net-mvc – ASP.Net MVC数据库驱动的菜单,带缓存
- asp.net – ViewModel的列表是空的
- asp.net-mvc – 在ASP.NET MVC中重定向后发布
- 为什么我不能将ASP.NET Framework版本显示为3.5?
- asp-classic – Classic ASP中的Response.Flush导致TIME_WA
- ASP.NET MVC编辑器模板和Html.EditorFor(…) – 如何消除类
推荐文章
站长推荐
- 在ASP.NET中,获取基本UR1请求的最快方法是什么?
- 是否可以运行异步调用来在ASP.NET中设置会话?
- asp.net – Excel单元格对齐:例如,数值xlLeft,x
- MVC5 - ASP.NET Identity登录原理 - Claims-base
- asp.net – 拒绝访问web.config中的“admin”文件
- asp.net-mvc-3 – Ninject每个会话单身?
- ABP官方文档(三十一)【集成Swagger UI】
- asp.net-mvc-3 – Razor webgrid ajax分页和排序
- asp.net-mvc – 使用MVC3 WebGrid助手向html属性
- asp.net – 什么时候Response.IsClientConnected
热点阅读