【发布时间】:2021-10-16 13:24:15
【问题描述】:
我正在编写一个在其调用中使用DefaultHttpContext 的测试(startup 是这里的测试主题):
[Fact]
public async void HandleCabinet_ShouldReturnValidCabinetSettings()
{
var startup = new Startup();
var context = DefaultHttpConext();
await startup.HandleCabinet(context);
string body;
using (var reader = new StreamReader(context.Response.Body, Encoding.UTF8))
{
body = reader.ReadToEnd();
}
Assert.Equal("some expectation", body);
}
问题是,body 始终是一个空字符串。在HandleCabinet 方法中,我这样写了一些东西:
await context.Response.WriteAsync("some expectation");
我看到默认情况下,Body 是NullStream,所以我尝试设置这样的流:
context.Response.Body = new BufferedStream(new MemoryStream());
但是,这没有效果。
那么,我该如何构造DefaultHttpContext,以便我可以测试响应?
【问题讨论】:
标签: c# asp.net-core httpcontext