Как смоделировать данные задачи <HttpResponseMessage>?C # - PullRequest
1 голос
/ 20 марта 2019

Я пытаюсь настроить фиктивную функцию, но не могу вернуть нужные данные. Я получаю сообщение об ошибке:

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);

1 Ответ

2 голосов
/ 20 марта 2019

Используйте ReturnsAsync, чтобы вернуть Task<T>, попробуйте это:

mockStateFixture.MockCouchDbClient.Setup(x => x.AuthenticatedQuery(
    It.IsAny<Func<Task<HttpResponseMessage>>>(),
    NamedHttpClients.COUCHDB,
    httpClient))
    .ReturnsAsync(httpResponseMessage);

это фактически то же самое, что Returns(Task.FromResult(httpResponseMessage))

...