Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 集成测试HttpClient实例的DelegatingHandler_.net_Rest_Integration Testing_Dotnet Httpclient - Fatal编程技术网

.net 集成测试HttpClient实例的DelegatingHandler

.net 集成测试HttpClient实例的DelegatingHandler,.net,rest,integration-testing,dotnet-httpclient,.net,Rest,Integration Testing,Dotnet Httpclient,我在HttpClientFactory周围有一个包装器,它通过HttpClientFactory.Create将默认的DelegatingHandler连接到HttpClient。它添加了一些标题。。等发送请求。我需要确保在发出实际请求之前,我的处理程序总是最后一个运行的。这是我工厂方法的要点 public static HttpClient Create(params DelegatingHandler[] handlers) { var handlerList

我在HttpClientFactory周围有一个包装器,它通过HttpClientFactory.Create将默认的DelegatingHandler连接到HttpClient。它添加了一些标题。。等发送请求。我需要确保在发出实际请求之前,我的处理程序总是最后一个运行的。这是我工厂方法的要点

    public static HttpClient Create(params DelegatingHandler[] handlers)
    {
        var handlerList = handlers.ToList();
        handlerList.Add(new ModuleClientHandler());
        return HttpClientFactory.Create(handlerList.ToArray());
    }
这是可行的,但我想围绕我的期望编写一些测试。如何使用HttpServer和HttpClient的现有实例来实现这一点


将HttpServer传递到处理程序列表将不起作用,因为它将在我的ModuleClientHandler处理程序之前连接,并在处理程序运行之前返回HttpResponse。

为什么不这样做:

public static class HandlerHelper
{
    public static HttpClientHandler Server;
    public static HttpClient Create(params DelegatingHandler[] handlers)
    {
        var handlerList = handlers.ToList();
        handlerList.Add(new ModuleClientHandler());
        if (Server == null)
        {
            return HttpClientFactory.Create(handlerList.ToArray());
        }
        else
        {
            return HttpClientFactory.Create(Server, handlerList.ToArray());
        }
    }
}
只需将您的
HttpServer
实例分配给
Server
属性,然后就可以进行测试了