asp.net-mvc – 如何在ASP.Net MVC中对自定义ActionFilter进行单
发布时间:2020-12-16 00:03:34 所属栏目:asp.Net 来源:网络整理
导读:所以我正在创建一个主要基于此项目 http://www.codeproject.com/KB/aspnet/aspnet_mvc_restapi.aspx的自定义ActionFilter. 我想要一个自定义操作过滤器,它使用http接受标头返回JSON或Xml.典型的控制器操作如下所示: [AcceptVerbs(HttpVerbs.Get)][AcceptTyp
所以我正在创建一个主要基于此项目
http://www.codeproject.com/KB/aspnet/aspnet_mvc_restapi.aspx的自定义ActionFilter.
我想要一个自定义操作过滤器,它使用http接受标头返回JSON或Xml.典型的控制器操作如下所示: [AcceptVerbs(HttpVerbs.Get)] [AcceptTypesAttribute(HttpContentTypes.Json,HttpContentTypes.Xml)] public ActionResult Index() { var articles = Service.GetRecentArticles(); return View(articles); } 自定义筛选器会覆盖OnActionExecuted,并将对象(在此示例文章中)序列化为JSON或Xml. 我的问题是:我该如何测试? >我写什么测试?我是TDD新手,并不是100%确定我应该测试什么以及不测试什么.我想出了AcceptsTypeFilterJson_RequestHeaderAcceptsJson_ReturnsJson(),AcceptsTypeFilterXml_RequestHeaderAcceptsXml_ReturnsXml()和AcceptsTypeFilter_AcceptsHeaderMismatch_ReturnsError406(). 谢谢. 解决方法
您只需要测试过滤器本身.只需创建一个实例并使用测试数据调用OnActionExecuted()方法,然后检查结果.它有助于尽可能地将代码分开.大部分繁重的工作都是在CsvResult类中完成的,可以单独测试.您无需在实际控制器上测试过滤器.使这项工作成为MVC框架的责任.
public void AcceptsTypeFilterJson_RequestHeaderAcceptsJson_ReturnsJson() { var context = new ActionExecutedContext(); context.HttpContext = // mock an http context and set the accept-type. I don't know how to do this,but there are many questions about it. context.Result = new ViewResult(...); // What your controller would return var filter = new AcceptTypesAttribute(HttpContentTypes.Json); filter.OnActionExecuted(context); Assert.True(context.Result is JsonResult); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在不使用MembershipProvider的情况下使用ASP.NET登录控
- ASP.NET’Session.Remove(key)’v / s’Session(key)= noth
- asp.net-mvc – 将动作方法参数传递给asp.net mvc中的Actio
- asp.net – 如何在使用无cookie的静态内容服务器时使bundle
- asp.net – Windows Azure – NetworkInformationException
- model-view-controller – 具有多个ViewModel的MVC 3 Model
- asp.net-mvc – 流文本输出长时间运行的动作?
- asp.net – 在设计器视图中打开项目时,Visual Studio崩溃
- asp.net-mvc – 在MVC Web应用程序中设置默认值
- asp.net-mvc – ASP.NET MVC路由 – 所有看起来都匹配正确的
推荐文章
站长推荐
- asp.net – FederatedAuthentication.WSFederati
- asp.net-mvc – MVC 4 _Layout.cshtml viewmodel
- asp.net-mvc – mvc中的多个内容占位符?
- 学习Asp.Net WebForms或Asp.Net MVC
- asp.net-mvc – asp.net mvc使用.wml保持覆盖tex
- asp.net – 如何更改.ASPX自动格式化设置(Visual
- asp.net – 使用HotTowel(Durandal框架)VS2012翻
- 分享一个asp.net pager分页控件
- asp.net-mvc – 具有不确定数量项的动态表单
- .NET Core中Object Pool的简单使用
热点阅读