gpt4 book ai didi

c# - 模拟 HttpResponse WriteAsync

转载 作者:行者123 更新时间:2023-11-30 15:54:35 35 4
gpt4 key购买 nike

我正在尝试调用在模拟HttpResponse 上模拟的WriteAsync,但我不知道要使用的语法。

var responseMock = new Mock<HttpResponse>();
responseMock.Setup(x => x.WriteAsync(It.IsAny<string>(), It.IsAny<CancellationToken>()));

ctx.Setup(x => x.Response).Returns(responseMock.Object);

出现以下错误的测试炸弹:

System.NotSupportedException : Invalid setup on an extension method: x => x.WriteAsync(It.IsAny(), It.IsAny())

最终我想验证是否已将正确的字符串写入响应。

如何正确设置?

最佳答案

为了完整性,这里有一个似乎适用于 .NET Core 3.1 的解决方案:

const string expectedResponseText = "I see your schwartz is as big as mine!";

DefaultHttpContext httpContext = new DefaultHttpContext();
httpContext.Response.Body = new MemoryStream();

// Whatever your test needs to do

httpContext.Response.Body.Position = 0;
using (StreamReader streamReader = new StreamReader(httpContext.Response.Body))
{
string actualResponseText = await streamReader.ReadToEndAsync();
Assert.Equal(expectedResponseText, actualResponseText);
}

关于c# - 模拟 HttpResponse WriteAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50065209/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com