将cookie设置为Asp.Net Core TestServer的httpClient

Ale*_*exK 6 c# testing cookies asp.net-core

我正在使用TestServer测试ASP.NET Core应用,并且有些控制器需要Cookie身份验证。我已经创建了这样的测试服务器实例:

_testServer = new TestServer(new WebHostBuilder()
            .UseEnvironment(CustomEnvironments.Test)
            .UseContentRoot(currentDirectory)                
            .UseStartup<Web.Startup>()
            .UseUrls("http://localhost/"));

ApiClient = _testServer.CreateClient();
Run Code Online (Sandbox Code Playgroud)

现在我必须添加身份验证Cookie,但服务器会忽略它。如果可以直接创建客户端,则可以将其传递HttpClientHandler给承包商UseCookies,并将其设置为false,它可以工作,但是当我从测试服务器获取客户端时,我无法访问处理程序。有没有一种方法可以添加身份验证cookie来测试客户端?

Ale*_*exK 5

我找到了解决方案。TestServerhas 方法CreateRequest(string path),它返回RequestBuilder,它允许将 cookie 插入到标题

  • 如果你能发布一些关于你如何使用 `RequestBuilder` 做到这一点的代码,我会喜欢它@alexk (5认同)