Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/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
C# 如何在WebAPI单元测试中传递头值_C#_Unit Testing_Asp.net Web Api_Http Headers - Fatal编程技术网

C# 如何在WebAPI单元测试中传递头值

C# 如何在WebAPI单元测试中传递头值,c#,unit-testing,asp.net-web-api,http-headers,C#,Unit Testing,Asp.net Web Api,Http Headers,在API控制器中,它获取HttpContextRequest头以获取访问令牌。当我使用UnitTest时,我将如何将访问令牌值传递给控制器操作。请帮忙 var _access_token = HttpContext.Current.Request.Headers["access_token"]; 你可以这样写 //Arrange var client = new HttpClient { BaseAddress = new Uri("http://localhost:55442/")

在API控制器中,它获取HttpContextRequest头以获取访问令牌。当我使用UnitTest时,我将如何将访问令牌值传递给控制器操作。请帮忙

var _access_token = HttpContext.Current.Request.Headers["access_token"];

你可以这样写

//Arrange
var client = new HttpClient { BaseAddress = new Uri("http://localhost:55442/") 
                            };
client.DefaultRequestHeaders.Add("access_token", "YWtoaWw6YWtoaWw=");
Employee emp = new Employee {
            Id=1,
            name = "Test Name",
            salary = "2000"
        };
//Act
var _response = 
client.PostAsJsonAsync(client.BaseAddress +"/"+ "myController"+ "/"+ 
                       "methodName",emp).Result;

//Assert
Assert.IsTrue(true);

干杯…

你可以这样写

//Arrange
var client = new HttpClient { BaseAddress = new Uri("http://localhost:55442/") 
                            };
client.DefaultRequestHeaders.Add("access_token", "YWtoaWw6YWtoaWw=");
Employee emp = new Employee {
            Id=1,
            name = "Test Name",
            salary = "2000"
        };
//Act
var _response = 
client.PostAsJsonAsync(client.BaseAddress +"/"+ "myController"+ "/"+ 
                       "methodName",emp).Result;

//Assert
Assert.IsTrue(true);

干杯…

使用“授权”http标头。请参阅,提供可用于重现问题和所需行为的方法。您没有提供足够的信息,我们无法有效地帮助您。此外,您的web api代码似乎与
HttpContext
紧密耦合,这将使单独进行单元测试变得非常困难。请使用“Authorization”http标头。请参阅,提供可用于重现问题和所需行为的方法。您没有提供足够的信息,我们无法有效地帮助您。另外,您的web api代码似乎与
HttpContext
紧密耦合,这使得隔离进行单元测试非常困难。