Как протестировать Xunit контроллера Webapi, который требует аутентификации и авторизации? - PullRequest
2 голосов
/ 04 ноября 2019

У меня есть атрибут авторизации. Я попытался использовать TestServer, где Startup - это еще один класс Startup, который я создал с помощью базы данных EF.

 testServer = new TestServer(new WebHostBuilder().UseStartup<Startup>());
 httpCLient = testServer.CreateClient();

Это пример метода. Если я попробую метод с использованием почтальона, я получу запрещенный запрос.

[RoleAuthorize(arguments)]
[HttpGet]
public IActionResult GetAll()
{
    var users = _userService.GetAll();
    return Ok(users);
}

Когда я попробую это:

var scope = testServer.Host.Services.CreateScope();
var userService = scope.ServiceProvider.GetRequiredService<IUserService>();
var userController = new UsersController(userService);
userController.GetAll();

Нет несанкционированного ответа, и я могу получить пользователей.

И я получаю NotFound с:

var data = await httpCLient.GetAsync("users");
var result = await data.Content.ReadAsStringAsync();

Как я могу проверить авторизацию и аутентификацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...