如何模拟 Task<HttpResponseMessage> 的数据? C#
How to mock a data of Task<HttpResponseMessage>? C#
我正在尝试设置一个模拟函数,但我无法 return 正确的数据
我收到以下错误:
Error CS1503 Argument 1: cannot convert from 'System.Net.Http.HttpResponseMessage' to 'System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>'
这是我尝试模拟的界面
public interface ICouchDbClients
{
Task<HttpResponseMessage> AuthenticatedQuery(Func<Task<HttpResponseMessage>> query, string name, HttpClient client);
}
这是我正在尝试的设置
var httpResponseMessage = new HttpResponseMessage
{
StatusCode = HttpStatusCode.Created
};
mockStateFixture.MockCouchDbClient.Setup(x => x.AuthenticatedQuery(
It.IsAny<Func<Task<HttpResponseMessage>>>(),
NamedHttpClients.COUCHDB,
httpClient))
.Returns(httpResponseMessage);
使用ReturnsAsync
到returnTask<T>
,试试这个:
mockStateFixture.MockCouchDbClient.Setup(x => x.AuthenticatedQuery(
It.IsAny<Func<Task<HttpResponseMessage>>>(),
NamedHttpClients.COUCHDB,
httpClient))
.ReturnsAsync(httpResponseMessage);
其实和Returns(Task.FromResult(httpResponseMessage))
是一样的
我正在尝试设置一个模拟函数,但我无法 return 正确的数据 我收到以下错误:
Error CS1503 Argument 1: cannot convert from 'System.Net.Http.HttpResponseMessage' to 'System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage>'
这是我尝试模拟的界面
public interface ICouchDbClients
{
Task<HttpResponseMessage> AuthenticatedQuery(Func<Task<HttpResponseMessage>> query, string name, HttpClient client);
}
这是我正在尝试的设置
var httpResponseMessage = new HttpResponseMessage
{
StatusCode = HttpStatusCode.Created
};
mockStateFixture.MockCouchDbClient.Setup(x => x.AuthenticatedQuery(
It.IsAny<Func<Task<HttpResponseMessage>>>(),
NamedHttpClients.COUCHDB,
httpClient))
.Returns(httpResponseMessage);
使用ReturnsAsync
到returnTask<T>
,试试这个:
mockStateFixture.MockCouchDbClient.Setup(x => x.AuthenticatedQuery(
It.IsAny<Func<Task<HttpResponseMessage>>>(),
NamedHttpClients.COUCHDB,
httpClient))
.ReturnsAsync(httpResponseMessage);
其实和Returns(Task.FromResult(httpResponseMessage))