Роли авторизации модульного тестирования .net Core 3.1 на уровне контроллера

У меня есть контроллеры с атрибутом авторизации на основе ролей, ниже приведен пример. Я хочу проверить настройку роли авторизации для каждого контроллера, например, только администратор компании, администратор группы может получить доступ к UserController. как лучше всего это сделать?

    [Authorize(Roles = ("company admin", "group admin")]
    [Route("api/v1/")]
    [ApiController]
    public class UserController : ControllerWithLog
    {

Спасибо!


person user12855329    schedule 09.02.2021    source источник
comment
Привет, во-первых, это будет не модульное тестирование, это будет функциональное тестирование интеграции! для проверки авторизации вам необходимо поднять в своем тесте всю инфраструктуру! и сделать http-запрос с определенным токеном   -  person Serghei    schedule 10.02.2021
comment
Проверьте этот stackoverflow.com/questions/48562403/ и этот medium.com/asos-techblog/   -  person Serghei    schedule 10.02.2021
comment
У меня есть эти интеграционные тесты, и претензии настроены для каждого запроса. Тем не менее, я попытался найти способ протестировать настройку ролей авторизации отдельно, а не проверять доступность для каждой конечной точки с разными ролями. Это похоже на то, как если бы вы поместили [Авторизовать (Роли = (администратор компании, администратор группы)] на уровень контроллера, а не на уровень каждого маршрута.   -  person user12855329    schedule 10.02.2021
comment
Если вы просто хотите убедиться, что на вашем контроллере или методе API есть атрибут Authorize с определенными параметрами, я бы использовал отражение и просканировал все контроллеры, получил пользовательские атрибуты и проверил, назначена ли ему правильная роль, и все!   -  person Serghei    schedule 10.02.2021
comment
спасибо, это один из вариантов, о которых я думал, но мне интересно, есть ли другой способ проверить это   -  person user12855329    schedule 10.02.2021