【问题标题】:How to testing Authorize Attributes with Roles in .net MVC 3?如何在 .net MVC 3 中使用角色测试授权属性?
【发布时间】:2011-08-01 14:30:26
【问题描述】:

我有那个控制器:

[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。如何在 Controller 中测试角色和授权?

【问题讨论】:

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


    【解决方案1】:

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

    更新: Steven Sanderson 在他的 pro asp.net mvc 2 framework 一书中对此有很好的解释。其实我在上面重复了他的话

    【讨论】:

    • 根据过滤器的实现方式,您应该能够直接为它们编写测试。然后在你的控制器单元测试中只测试它们的行为,因为它们将被忽略,正如 objectbox 指出的那样。
    【解决方案2】:

    我相信这是再次进行集成测试。 Watin (http://watin.org/) 是一个用于 Web 集成测试的框架。

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 2011-01-08
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      • 2011-05-17
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多