如何使用.net MVC 3中的角色测试授权属性?

时间:2011-08-01 14:30:27

标签: .net asp.net-mvc unit-testing asp.net-mvc-3 asp.net-membership

我有那个控制器:

[Authorize(Roles = "Administrator")]
public class ApuradorController : Controller
{
    private readonly Questiona2011Context _context;
    private readonly AuthenticationService _authenticationService;

    public ApuradorController(Questiona2011Context context, AuthenticationService authenticationService)
    {
        this._context = context;
        this._authenticationService = authenticationService;
    }

    ...
}

我正在使用RoleProvider。我如何在控制器中测试角色和授权?

2 个答案:

答案 0 :(得分:7)

过滤器(例如,您的authorizeattribute)旨在独立于控制器和操作方法。当你为你的动作方法编写单元测试时,简单地忽略过滤器,它们只是属性。 但是,当您对控制器和操作进行单元测试时,您不必测试它们! 如果您想测试您的应用程序的工作方式,您必须编写ui自动化测试。

<强>更新 Steven Sanderson在他的书籍pro asp.net mvc 2框架中对此有很好的解释。事实上,我在上面重复了他的话

答案 1 :(得分:1)

我相信这是为了进行集成测试。 Watin(http://watin.org/)是Web集成测试的框架。