在ASP.NET Core 6 MVC应用程序中进行集成测试时,必须确保测试了正确的授权和身份验证。以下是一些在集成测试中测试授权的方法示例:
// arrange
var builder = WebApplication.CreateBuilder();
builder.Services.AddAuthentication(options => {...});
builder.Services.AddAuthorization(options => {...});
builder.Services.AddControllers();
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
var server = new TestServer(app);
var client = server.CreateClient();
// act
// send http request with authorization header
// assert
// check http response status code
// arrange
var builder = Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup()
.ConfigureTestServices(services =>
{
services.AddAuthentication(options => {...});
services.AddAuthorization(options => {...});
});
});
var app = await builder.StartAsync();
// act
// send http request with authorization header
// assert
// check http response status code
在测试期间,需要使用特定的授权机制来提供有效的用户身份和声明,以便测验可以针对特定的授权需求运行。还需要通过 http 请求头部或者其他方式来传递授权令牌,来验证相关操作是否已被正确授权。