如何在 dotnet core V2.2 中对 services.AddHttpClient() 注册进行单元测试

Gir*_*uly 7 c# unit-testing .net-core asp.net-core

我正在研究 Web API dotnet core V2.2 项目。我在 Startup.cs 文件中注册了以下指定的客户端。我想使用 NSubstitute 进行单元测试,以便为以下方法进行可能的代码覆盖。有人可以帮我解决这个问题吗?提前致谢。

public void ConfigureServices(IServiceCollection services) {
    services.AddHttpClient("myapi", (serviceProvider, client) = >{
    var config = serviceProvider.GetService < IConfiguration > ();
    client.BaseAddress = new URI(config["mybaseURL"]);
});
Run Code Online (Sandbox Code Playgroud)

}

ada*_*rsh 0

我来不及回答这个问题了。你可以试试这个:

//Arrange
var services = new ServiceCollection();
services.ConfigureServices();
//Act
var provider = services.BuildServiceProvider();
IHttpClientFactory httpClientFactory = provider.GetRequiredService<IHttpClientFactory>();


var httpClient = httpClientFactory.CreateClient("myapi");

Assert.NotNull(httpClient);
//Write other Asserts ex: check the base address
Run Code Online (Sandbox Code Playgroud)