如何执行内存中HttpClientHandler的测试 [英] How to perform in-memory test of HttpClientHandler

查看:107
本文介绍了如何执行内存中HttpClientHandler的测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我直接传递的HttpServer 实例的HttpClient 写一些内存集成测试。我怎么能还连线了 HttpClientHandler

 建立CTX =()=>
{
    无功配置=新HttpConfiguration();
    config.Routes.MapHttpRoute(名称:默认,routeTemplate:API / {}控制器/(编号),默认值为:新{控制器=值,ID = RouteParameter.Optional});
    config.MessageHandlers.Add(新的COM pressionHandler());    VAR服务器=新的HttpServer(配置)
    {
        InnerHandler =新DECOM pressionHandler()
    };
    客户端=新的HttpClient(服务器);
};


解决方案

有关测试客户端处理程序,我不得不实际设置的HttpServer 处理程序:

  VAR服务器=新的HttpServer(配置);VAR处理器=新DECOM pressionHandler
{
    InnerHandler =服务器
};客户端=新的HttpClient(处理);

I'm writing some in-memory integration tests by passing a HttpServer instance directly to HttpClient. How can I also wire up a HttpClientHandler?

Establish ctx = () =>
{
    var config = new HttpConfiguration();
    config.Routes.MapHttpRoute(name: "Default", routeTemplate: "api/{controller}/{id}", defaults: new { controller = "values", id = RouteParameter.Optional });
    config.MessageHandlers.Add(new CompressionHandler());

    var server = new HttpServer(config)
    {
        InnerHandler = new DecompressionHandler()
    };
    client = new HttpClient(server);
};

解决方案

For testing a client handler I had to actually set the HttpServer as the inner handler:

var server = new HttpServer(config);

var handler = new DecompressionHandler
{
    InnerHandler = server
};

client = new HttpClient(handler);  

这篇关于如何执行内存中HttpClientHandler的测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆