首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在c#中对HTTP请求进行单元测试

在c#中对HTTP请求进行单元测试
EN

Stack Overflow用户
提问于 2012-02-01 20:14:43
回答 4查看 65K关注 0票数 33

我正在编写一些调用web服务、读回响应并对其执行某些操作的代码。我的代码名义上是这样的:

string body = CreateHttpBody(regularExpression, strategy);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url);
request.Method = "POST";
request.ContentType = "text/plain; charset=utf-8";

using (Stream requestStream = request.GetRequestStream())
{
    requestStream.Write(Encoding.UTF8.GetBytes(body), 0, body.Length);
    requestStream.Flush();
}

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    byte[] data = new byte[response.ContentLength];

    using (Stream stream = response.GetResponseStream())
    {
        int bytesRead = 0;

        while (bytesRead < data.Length)
        {
            bytesRead += stream.Read(data, bytesRead, data.Length - bytesRead);
        }
    }

    return ExtractResponse(Encoding.UTF8.GetString(data));
}

我实际执行自定义操作的唯一部分是在ExtractResponseCreateHttpBody方法中。然而,只对这些方法进行单元测试感觉是错误的,并希望其余的代码能够正确地组合在一起。有没有办法截取HTTP请求并提供模拟数据给它?

EDIT此信息现已过期。使用System.Net.Http.HttpClient库构建这类代码要容易得多。

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

https://stackoverflow.com/questions/9095627

复制
相关文章

相似问题

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