c# - 如何测试需要身份验证和授权的 webapi 控制器 xunit?
问题描述
我有一个自定义授权属性。我尝试使用TestServer
where是我使用内存 EF 数据库创建的Startup
另一个类。Startup
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();
如何测试授权和身份验证?
解决方案
推荐阅读
- ruby - 无法在 Ubuntu 中成功安装带有 Ruby 支持的 Vim
- amazon-web-services - 将 AWS ELB 指向 Heroku DNS 目标
- javascript - 角度中不区分大小写的查询参数
- json - 尝试进行 API 调用以获取令牌
- r-markdown - 使用 bookdown 构建簇绒书时如何更改块内使用的字体颜色?
- javascript - 如何从 vue 组件更改 vue 中存储文件中的全局变量
- c++ - 当派生类中重载相同函数时,如何使用派生类对象使用基类函数?
- javascript - 为 MongoDB 数据库播种的文档的自动随机测试数据生成
- reactjs - 如何使用 Typescript 将 jest.spyOn 与 React 函数组件一起使用
- c++ - 用于向所有 mpi 进程发送和接收的高效设计模型:MPI all 2 all 通信