我可以将FlurlClient与Asp.Net Core TestServer一起使用吗?

时间:2018-05-03 12:58:26

标签: asp.net-web-api asp.net-core integration-testing flurl

我们在一些项目中使用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方法/扩展。

然后我注意到了 Is it possible to use Furl.Http with the OWIN TestServer?描述了owin实现中需要做更多工作。

Asp.Net Core TestServer的方法是否类似?还是简化了?

1 个答案:

答案 0 :(得分:3)

简化,您提出的更改完全正确。您链接的问题很旧,我的回答包含的信息在2.x中不再相关。 (我已对其进行了更新。)事实上,在HttpClient构造函数中直接提供现有FlurlClient的功能已添加very recently,并考虑到此特定用例。

这是我用作CreateClient的替代品的扩展方法;如果你这么做的话,你可能会发现它很方便:

public static class TestServerExtensions
{
    public static IFlurlClient CreateFlurlClient(this TestServer server) => 
        new FlurlClient(server.CreateClient());
}