我有一个集成测试,可以从第三方服务器获取一些json结果。它真的很简单,而且效果很好。
我希望停止使用Moq
(或任何模拟类库,如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
?
任何带有一些示例代码的建议都将非常受欢迎!
https://stackoverflow.com/questions/9823039
复制相似问题