asp.net-mvc – ASP.NET MVC – 使用Moq框架对RenderPartialViewToStrin
发布时间:2020-05-23 20:58:06 所属栏目: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 jquery+ajax异步刷新实现示例
- asp.net-mvc-3 – 在DEBUG或Debugger中运行时禁用MVC3中的O
- ASP.NET云应用程序与普通的ASP.NET
- 在ASP.NET上启动维护流程的最佳实践是什么
- asp.net – “HttpContext.Current”属性和相关事物的交叉线
- 如何指导获取一个经典的asp应用程序在IIS 7.0下工作
- asp.net-mvc – 如何设置TextBox的空字符串而不是null的默认
- ef-code-first – 如何通过使用Identity ASP.NET MVC的代码
- asp.net-mvc – 使用MVCContrib格式进行编辑
- asp.net – web.config中的元素和项目文件之间有什么不同
推荐文章
站长推荐
- asp.net – 使用CompareValidator控件将用户输入
- ASP.NET MVC URL在CSS文件中自动解析
- asp.net-mvc – 如何包括一个模型与RedirectToAc
- asp.net – 新安装的IIS. Aspx页面不会显示
- asp.net-mvc – 使用ViewModels和对System.Web.M
- asp.net-mvc – 允许使用数字中的点和逗号,而不仅
- asp.net-core – 找不到Swashbuckle.AspNetCore
- asp.net-mvc – 部署后不显示捆绑的css … ASP.N
- asp.net-mvc – 错误处理在asp.net mvc 3
- 如何在ASP.NET Core 2.0中设置多个身份验证方案?
热点阅读
