【发布时间】:2020-01-03 18:15:28
【问题描述】:
因此,我创建了一个 .net 核心中间件,该中间件将标头添加到响应中。
我没有找到对这个中间件进行单元测试的方法,因为它使用 OnStarting 回调,我无法想象如何模拟或强制执行它。
这是一个中间件示例:
public async Task InvokeAsync(HttpContext context, RequestDelegate next)
{
context.Response.OnStarting(() =>
{
context.Response.Headers.Add("Name", "Value");
return Task.CompletedTask;
});
await next(context);
}
由于中间件接口需要HttpContext 的具体实例,我无法想象使用FakeItEasy 模拟它的方法。
【问题讨论】:
-
@Dai 嗯,不。我希望能够在不涉及控制器(或整个管道)的情况下对这个中间件进行单元测试。
-
我链接到那个 QA 是因为它展示了如何构造一个用于测试的
HttpContext实例——而不是因为它实例化了一个控制器。
标签: c# asp.net-core testing middleware xunit