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

2024-01-26

我们在一些项目中使用 FlurlClient 并熟悉其流畅的界面。 我们现在希望使用 TestServer 在 ASP.NET Core 集成测试中使用它。 示例来自http://asp.net-hacker.rocks/2017/09/27/testing-aspnetcore.html 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);

并使用所有 FlulClient 方法/扩展。

但后来我注意到是否可以将 Furl.Http 与 OWIN TestServer 一起使用? https://stackoverflow.com/questions/33090498/is-it-possible-to-use-furl-http-with-the-owin-testserver/33128757#33128757其中描述了 owin 的实施还需要做更多的工作。

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


It's much简化了,您提出的更改是完全正确的。您链接到的问题很旧,我的答案包含在 2.x 中不再相关的信息。 (我已经更新了。)事实上,能够提供现有的HttpClient直接在一个FlurlClient添加了构造函数最近 https://github.com/tmenier/Flurl/issues/298,并考虑到这个特定的用例。

这是我用来替代的扩展方法CreateClient;如果你经常这样做,你可能会发现它很方便:

public static class TestServerExtensions
{
    public static IFlurlClient CreateFlurlClient(this TestServer server) => 
        new FlurlClient(server.CreateClient());
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将 FlurlClient 与 Asp.Net Core TestServer 一起使用吗? 的相关文章

随机推荐