asp.net-mvc – 我如何UnitTest自定义ActionFilter?
|
我一直试图找到一些关于此的直截了当的信息,但是我无法 – 或者我发现的一直是模糊的让我理解正在发生的事情,或者对于错误的事情来说太具体了,例如我找到了一个单元测试AuthorizeAttribute的教程. (第三种选择当然是我太笨了,没有意识到我正在阅读我正在寻找的信息……在这种情况下我仍然需要帮助,因为我很笨:P) 我希望能够测试两件事: >将给定的ActionFilter应用于某个操作(以确保该操作符合要求) 而且我很无能为力.谁能让我朝着正确的方向推动我真正需要测试的东西?我的安排,行动和断言部分应包含哪些内容? 一点点细节,如果我不够清楚: 我有一个CustomValidationFilter,它应该检查两个提交的表单值是否相同,如果没有则添加ModelStateError.我想验证错误是否添加了正确的错误消息,如果值不相同,并且如果值相等(并且为非null)则不添加错误. 我还在GuestbookController上有一个Write动作.我想验证过滤器是否已应用于此操作. 解决方法在测试中使用反射.var method = typeof(MyController).GetMethod("MyMethod");
var attribute = method.GetCustomAttributes(typeof(CustomValidationFilter),false);
.Cast<CustomValidationFilter>()
.SingleOrDefault();
Assert.IsNotNull( attribute );
Assert.AreEqual( "value",atttribute.SomeProperty );
为您班级中的方法创建单元测试.使用适当的数据模拟filterContext并检查该方法应该设置的任何变量,实际上是您期望的那样. public void AttributeTest()
{
var httpContext = MockRepository.GenerateMock<HttpContextBase>();
var controller = new FakeController();
controller.controllerContext = new ControllerContext( httpContext,new RouteData(),controller );
...
attribute.OnActionExecuting( filterContext );
Assert...
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何绘制密码字段就像我们绘制Ember.TextFi
- 在asp.net中使用eval(“”)
- ASP.NET MVC5 OWIN:通过Facebook登录后,为什么User.Identi
- asp.net-mvc – 为什么ValidateInput(False)不工作?
- ASP.NET页面生命周期解释
- asp.net – Orchard CMS和Sitefinity CMS
- modelstate – asp.net mvc没有实体框架
- ASP.NET:如何从javascript访问转发器生成的元素?
- asp.net – 为什么javascript onchange事件不触发如果自动完
- asp.net-mvc – 构建视图模型的最佳方法是什么?
- asp.net-mvc-3 – 在asp.net MVC3.0中创建GridVi
- ASP.NET Cookie过期时间始终是1/1/0001 12:00 AM
- asp.net – 我可以在一个Web项目中拥有多个web.c
- asp.net – 为什么使用隐藏的字段?
- asp.net – 什么内容类型强制下载文本响应?
- asp.net – 为什么Scott Guthrie建议我们在Error
- Jquery+ajax请求data显示在GridView上(asp.net)
- asp.net-mvc – 使用NHibernate.AspNet.Identity
- asp.net-mvc – 实现多租户ASP.NET MVC应用程序的
- asp.net-mvc – 什么是MVC 5的会员提供商?
