首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能模拟出一个.NET HttpWebResponse?

有没有可能模拟出一个.NET HttpWebResponse?
EN

Stack Overflow用户
提问于 2012-03-22 21:16:10
回答 5查看 48.5K关注 0票数 71

我有一个集成测试,可以从第三方服务器获取一些json结果。它真的很简单,而且效果很好。

我希望停止使用Moq (或任何模拟类库,如ninject等)来劫持并强制返回结果。

这个是可能的吗?

以下是一些示例代码:

代码语言:javascript
复制
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

任何带有一些示例代码的建议都将非常受欢迎!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9823039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档