Могу ли я использовать FlurlClient с Asp.Net Core TestServer? - PullRequest
0 голосов
/ 03 мая 2018

Мы используем FlurlClient в нескольких проектах и ​​знакомы с их свободным интерфейсом. Теперь мы хотим использовать его в интеграционных тестах asp.net с использованием TestServer. Пример из http://asp.net -hacker.rocks / 2017/09/27 / тестирование-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.

Но потом я заметил Можно ли использовать Furl.Http с OWIN TestServer? , в котором описано, что в реализации owin требуется больше работы.

Схож ли подход для Asp.Net Core TestServer? Или это упрощенно?

1 Ответ

0 голосов
/ 03 мая 2018

Это значительно упрощено, и предложенное вами изменение совершенно верно. Вопрос, на который вы ссылаетесь, устарел, и мой ответ содержит информацию, которая больше не актуальна в 2.x. (Я обновил его.) Фактически, возможность предоставить существующий HttpClient непосредственно в конструкторе FlurlClient была добавлена ​​ совсем недавно , и с учетом этого конкретного случая использования.

Вот метод расширения, который я использую в качестве замены для CreateClient; Вы можете найти это удобным, если вы делаете это много:

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