我有一个 MVC4 应用程序并在 global.asax 中添加了一堆全局过滤器。它们需要按一个顺序排列。我想编写一个单元测试以确保它们始终处于所需的顺序。有没有办法访问所有全局过滤器或测试它?
问问题
934 次
2 回答
3
FilterConfig
默认情况下(在 App_Start 下)注册全局过滤器,对吗?这是这样的:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
然后,您可以从测试用例调用此方法并传递一个GlobalFilterCollection
实例,然后您可以测试GlobalFilterCollection
您通过的顺序。
于 2013-03-25T20:42:25.483 回答
0
如果你想要一个特定的订单,你甚至可以指定一个订单作为一个属性
例如 [FilterName(Order = 1)]
默认情况下,过滤器没有指定任何顺序,因此它们由框架随机执行。
Order> -1 的任何内容都确保了过滤器的执行顺序。
(不确定这是否有助于提供更多信息,我认为它会更有用)
参考:
http://msdn.microsoft.com/en-us/library/system.web.mvc.filter(v=vs.118).aspx http://msdn.microsoft.com/en-us/library/system。 web.mvc.filter.order(v=vs.118).aspx
于 2014-02-26T18:11:32.087 回答