Mock HttpClient с несколькими запросамиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Mock HttpClient с несколькими запросами

Сообщение Anonymous »


Я пытаюсь выполнить модульное тестирование функции, которая вызывает API. Я успешно сделал это, используя макет HttpMessageHandler, как показано ниже, который позволяет мне подделать ответ от API:

private static Mock GetMockHttpMessageHandler(stringockResponse) { варockMessageHandler = новый Mock(); макетMessageHandler.Protected() .Setup("SendAsync", ItExpr.IsAny(), ItExpr.IsAny()) .Returns(Task.FromResult(новый HttpResponseMessage { СтатусКод = HttpStatusCode.OK, Содержимое = новый StringContent (mockResponse) })); вернуть макетMessageHandler; } Пока все хорошо. Мне удалось протестировать половину моей функции, вторая половина выполняет еще один вызов API — оба ответа затем оборачиваются в объект, используемый системой. Проблема в том, что у второго API должен быть другой ложный ответ.

Я думал, что смогу изменить ItExpr.IsAny() в приведенном выше коде на new HttpRequestMessage(HttpMethod.Post, "http://LiveUrl.com /AuthenticateUserCredential"), а затем иметь несколько Setup/Returns с изменением ответа на основе URI, но я попробовал это, как показано ниже (только с одним Setup/Return > для проверки я не сломал первую половину теста)

private static Mock GetMockHttpMessageHandler(stringockResponse) { варockMessageHandler = новый Mock(); макетMessageHandler.Protected() .Setup("SendAsync", new HttpRequestMessage(HttpMethod.Post, "http://LiveUrl.com/AuthenticateUserCredential"), ItExpr.IsAny()) .Returns(Task.FromResult(новый HttpResponseMessage { СтатусКод = HttpStatusCode.OK, Содержимое = новый StringContent (mockResponse) })); вернуть макетMessageHandler; } Теперь приведенное выше прерывает первый вызов API — я получаю ответ ниже:

обработчик не вернул ответное сообщение

Теперь я застрял. Возможно ли вообще то, что я пытаюсь сделать?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение