如何在ASP.NET MVC中测试自定义模型绑定器?
发布时间:2020-12-16 00:46:08 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.NET MVC应用程序中编写了一些自定义模型绑定器(实现IModelBinder)。我想知道什么是一个好的方法来对它们进行单元测试(binder)? 解决方法 我这样做: var formElements = new NameValueCollection() { {"FirstName","Bubba"},{"MiddleName",""},{"La
我在ASP.NET MVC应用程序中编写了一些自定义模型绑定器(实现IModelBinder)。我想知道什么是一个好的方法来对它们进行单元测试(binder)?
解决方法
我这样做:
var formElements = new NameValueCollection() { {"FirstName","Bubba"},{"MiddleName",""},{"LastName","Gump"} }; var fakeController = GetControllerContext(formElements); var valueProvider = new Mock<IValueProvider>(); var bindingContext = new ModelBindingContext(fakeController,valueProvider.Object,typeof(Guid),null,null); private static ControllerContext GetControllerContext(NameValueCollection form) { Mock<HttpRequestBase> mockRequest = new Mock<HttpRequestBase>(); mockRequest.Expect(r => r.Form).Returns(form); Mock<HttpContextBase> mockHttpContext = new Mock<HttpContextBase>(); mockHttpContext.Expect(c => c.Request).Returns(mockRequest.Object); return new ControllerContext(mockHttpContext.Object,new RouteData(),new Mock<ControllerBase>().Object); } 然后我刚刚将bindingContext变量传递给实现IModelBinder接口的对象的BindModel方法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 天蓝色 – 不在托管服务或开发结构中运行(生产,而不是调试/
- asp.net-mvc – EntityFunctions.CreateDateTime问题与linq
- asp.net-mvc – ASP.Net MVC有一个Action渲染另一个Action
- asp.net-core – 在将Swashbuckle用于网络核心web api项目时
- asp.net-mvc – 在MVC SignalR服务器和Windows服务SIgnalR客
- asp.net-mvc – MVC控制器操作参数为null
- asp.net – Vs html
- asp.net-mvc – 从ASP.NET MVC操作返回什么来允许jQuery aj
- 如何在回发后重置asp.net表单?
- ASP.NET MVC 4和会话安全漏洞
推荐文章
站长推荐
- 在ASP.NET应用程序中托管的WCF服务中使用Autofac
- asp.net-mvc – 如何在ASP.NET Web API中获取IpA
- asp.net-mvc – 如何根据接受的HTTP动词重载ASP.
- asp.net – FormsAuthentication.GetRedirectUrl
- asp.net – IE10中的LinkBut??tons不执行回发
- asp.net-mvc-3 – 在MVC3中禁用HTML.TextAreaFor
- asp.net – System.Web.Cache,会话级别或应用程序
- 将ASP.NET添加到ASP.NET文本框控件的OnBlur属性
- asp.net-mvc – 返回对象名称为MVC的Json Result
- asp.net-mvc – ASP.NET MVC泛型基础视图类
热点阅读