c# - 如何使用 UseExceptionHandler 中间件为全局异常处理程序编写单元测试用例
问题描述
我创建了如下全局异常处理程序类
public static void UseGlobalExceptionHandler(this IApplicationBuilder app, ILogger logger)
{
app.UseExceptionHandler(
options => options.Run(
async context =>
{
var env = context.RequestServices.GetService<IHostingEnvironment>();
var general = context.RequestServices.GetService<General>();
var exHandlerFeature = context.Features.Get<IExceptionHandlerFeature>();
var exception = exHandlerFeature.Error;
LogException(logger, exception);
JObject response = CreateResponseMessage(exception,env,general);
if (!context.Response.HasStarted)
{
context.Response.Headers.Add("Access-Control-Allow-Credentials", new StringValues("true"));
context.Response.Headers.Add("Access-Control-Allow-Origin", new StringValues("*"));
context.Response.ContentType = "application/json";
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
var json = JsonConvert.SerializeObject(response);
await context.Response.WriteAsync(json);
}
}
)
);
}
我是编写单元测试用例的新手。我想知道如何使用上述代码中提到的参数/变量来模拟异常处理中间件,并为此编写测试用例。
解决方案
推荐阅读
- python - 使用 Django 从 Flask 对用户进行身份验证
- r - 在绘图列表上使用 lines() 函数
- bootstrap-4 - bootstrap 4 data-trigger='focus' 不能在 div 上工作
- jquery - CSS 选择器:选项卡未保持选中状态
- bootstrap-4 - 引导按钮组在网格布局中的定位
- html - HTML 同一文件上的多个页面
- reactjs - 静态查询“数据”未定义
- service - BaseX 是否支持使用作业模块或查询与 proc 模块和作业模块的组合运行 basex 脚本文件 (.bxs)?
- macos - 安装应用程序后如何链接 .dylib 库
- kubernetes - google-cloud-services 无法连接任何服务