C# Moq httpclient第二次返回空字符串

C# Moq httpclient第二次返回空字符串,c#,unit-testing,httpclient,moq,C#,Unit Testing,Httpclient,Moq,我目前有如下代码: var fieldBoundary = Properties.Resources.TestFieldBoundary; httpClient.Setup( x => x.GetAsync(It.Is<Uri>(url => url.AbsoluteUri == APIUrl.AbsoluteUri + <my url>))) .Returns( Task.FromResult(new Htt

我目前有如下代码:

var fieldBoundary = Properties.Resources.TestFieldBoundary;

httpClient.Setup(
    x =>
        x.GetAsync(It.Is<Uri>(url => url.AbsoluteUri == APIUrl.AbsoluteUri + <my url>)))
    .Returns(
        Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new StringContent(Encoding.Default.GetString(fieldBoundary))
        }));
var fieldBoundary=Properties.Resources.TestFieldBoundary;
httpClient.Setup(
x=>
x、 GetAsync(It.Is(url=>url.AbsoluteUri==APIUrl.AbsoluteUri+)
.返回(
Task.FromResult(新的HttpResponseMessage(HttpStatusCode.OK)
{
Content=newstringcontent(Encoding.Default.GetString(fieldBoundary))
}));

第一次,使用这个模拟http客户机,我得到了预期的响应。但是,当我第二次使用相同的模拟对象调用相同的URL时,我得到了一个成功的响应,但响应是空字符串或零长度字节数组。关于如何以不同方式实现此功能的想法?

Returms
更改为使用函数

httpClient
    .Setup(x => x.GetAsync(It.Is<Uri>(url => url.AbsoluteUri == APIUrl.AbsoluteUri + <my url>)))
    .Returns(() => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK) {
            Content = new StringContent(Encoding.Default.GetString(fieldBoundary))
        })
    );
httpClient
.Setup(x=>x.GetAsync(It.Is(url=>url.AbsoluteUri==APIRL.AbsoluteUri+))
.Returns(()=>Task.FromResult(新的HttpResponseMessage(HttpStatusCode.OK)){
Content=newstringcontent(Encoding.Default.GetString(fieldBoundary))
})
);
每次调用mock方法时,它都会调用该函数,而不是在重复调用时返回相同的实例。这就是为什么当您第二次调用时,字符串内容流指针已经在末尾