Как протестировать атрибуты Authorize с ролями в .net MVC 3? - PullRequest
4 голосов
/ 01 августа 2011

У меня есть этот контроллер:

[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 ]

7 голосов
/ 01 августа 2011

Фильтры (например, ваш атрибут авторизации) разработаны так, чтобы быть независимыми от контроллеров и методов действий.когда вы пишете модульные тесты для ваших методов действий, фильтры просто игнорируются, они являются просто атрибутами.Но вам не нужно тестировать их, когда вы проводите модульное тестирование своих контроллеров и действий!Если вы хотите проверить, как ваше приложение работает в целом, вы должны написать тесты автоматизации пользовательского интерфейса.

Обновление: Стивен Сандерсон прекрасно объяснил это в своей книге про asp.net mvc 2 framework.На самом деле я повторил его слова выше

1 голос
/ 02 августа 2011

Я полагаю, что это снова тест на интеграцию. Watin (http://watin.org/) - это фреймворк для тестирования веб-интеграции.

...