У меня есть тест интеграции, который захватывает некоторый результат json от стороннего сервера. Это действительно просто и отлично работает.
Я надеялся прекратить на самом деле поражать этот сервер и использовать Moq
(или любую библиотеку Mocking, такую как ninject и т.д.), чтобы захватить и принудительно вернуть результат.
Это возможно?
Вот пример кода: -
public Foo GoGetSomeJsonForMePleaseKThxBai()
{
// prep stuff ...
// Now get json please.
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("Http://some.fancypants.site/api/hiThere);
httpWebRequest.Method = WebRequestMethods.Http.Get;
string responseText;
using (var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
using (var streamReader = new StreamReader(httpWebResponse.GetResponseStream()))
{
json = streamReader.ReadToEnd().ToLowerInvariant();
}
}
// Check the value of the json... etc..
}
и, конечно, этот метод вызывается из моего теста.
Я думал, что, может быть, мне нужно перейти к этому методу (или к свойству класса?) издеваться над httpWebResponse
или что-то вроде этого, но не было слишком уверенным, если бы это было так. Кроме того, ответ является результатом метода httpWebRequest.GetResponse()
.. так что, возможно, мне просто нужно передать в издеваемую HttpWebRequest
?.
любые предложения с некоторым примером кода будут наиболее оценены!