我可以将 FlurlClient 与 Asp.Net Core TestServer 一起使用吗?
Can I use FlurlClient with Asp.Net Core TestServer?
我们在几个项目中使用了FlurlClient,熟悉其流畅的界面。
我们现在想在使用 TestServer 的 asp.net 核心集成测试中使用它。
来自的例子
http://asp.net-hacker.rocks/2017/09/27/testing-aspnetcore.html
_server = new TestServer(new WebHostBuilder()
.UseStartup<Startup>());
_client = _server.CreateClient();
我打算将代码更改为
_server = new TestServer(new WebHostBuilder()
.UseStartup<Startup>());
var httpClient = _server.CreateClient();
_client = new FlurlClient(httpClient);
并使用所有 FlurlClient methods/extensions。
但后来我注意到
描述了在 owin 实现中需要做更多的工作。
Asp.Net Core TestServer 的方法是否相似?还是简化了?
大大 简化了,您提出的更改完全正确。您链接到的问题是旧问题,我的回答包含在 2.x 中不再相关的信息。 (我已经更新了它。)事实上,添加了直接在 FlurlClient
构造函数中提供现有 HttpClient
的能力 very recently,并考虑到这个特定的用例。
这是我用来替代 CreateClient
的扩展方法;如果你经常这样做,你可能会发现它很方便:
public static class TestServerExtensions
{
public static IFlurlClient CreateFlurlClient(this TestServer server) =>
new FlurlClient(server.CreateClient());
}
我们在几个项目中使用了FlurlClient,熟悉其流畅的界面。 我们现在想在使用 TestServer 的 asp.net 核心集成测试中使用它。 来自的例子 http://asp.net-hacker.rocks/2017/09/27/testing-aspnetcore.html
_server = new TestServer(new WebHostBuilder()
.UseStartup<Startup>());
_client = _server.CreateClient();
我打算将代码更改为
_server = new TestServer(new WebHostBuilder()
.UseStartup<Startup>());
var httpClient = _server.CreateClient();
_client = new FlurlClient(httpClient);
并使用所有 FlurlClient methods/extensions。
但后来我注意到
Asp.Net Core TestServer 的方法是否相似?还是简化了?
大大 简化了,您提出的更改完全正确。您链接到的问题是旧问题,我的回答包含在 2.x 中不再相关的信息。 (我已经更新了它。)事实上,添加了直接在 FlurlClient
构造函数中提供现有 HttpClient
的能力 very recently,并考虑到这个特定的用例。
这是我用来替代 CreateClient
的扩展方法;如果你经常这样做,你可能会发现它很方便:
public static class TestServerExtensions
{
public static IFlurlClient CreateFlurlClient(this TestServer server) =>
new FlurlClient(server.CreateClient());
}