Mock HttpClient с несколькими запросами ⇐ C#
Mock HttpClient с несколькими запросами
Я пытаюсь выполнить модульное тестирование функции, которая вызывает 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 — я получаю ответ ниже:
обработчик не вернул ответное сообщение
Теперь я застрял. Возможно ли вообще то, что я пытаюсь сделать?
Я пытаюсь выполнить модульное тестирование функции, которая вызывает 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 — я получаю ответ ниже:
обработчик не вернул ответное сообщение
Теперь я застрял. Возможно ли вообще то, что я пытаюсь сделать?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Mockmaker Exception - не удалось инициализировать встроенный байт -приятель Mock Mock
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-