如何为mvc动作过滤器编写测试用例?

时间:2009-12-08 06:36:50

标签: asp.net-mvc mstest action-filter

我有一个动作过滤器,我从下面的链接 http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/

有一种叫做“ RequiresAuthenticationAttribute ”的东西 为此,我需要编写测试用例。 我怎样才能做到这一点?形成一些我读过的博客,我们需要模拟httcontext。 我怎么嘲笑这个?我需要做什么手术?这有什么链接吗?

1 个答案:

答案 0 :(得分:2)

请勿使用Rob的博客中的[RequiresAuthentication]属性。它适用于MVC的一个非常老的预发布版本。请改用收件箱中的[Authorize]属性。

由于[Authorize]属性是由MVC团队编写的,因此您无需对其逻辑进行单元测试。但是,如果需要,您可以验证它是否已应用于您的控制器或操作。只需获取您感兴趣的Type或MethodInfo,然后调用其GetCustomAttributes()方法以获取AuthorizeAttribute的实例。您可以检查这些实例以获取您期望的值。

如果需要,可以查看the source code of AuthorizeAttribute,了解有关编写自己的过滤器的信息。此外,您可以查看the official unit test of this type,因此如果您最终编写过滤器,则可以使用类似的方法编写自己类型的单元测试。