如何使用WebApplicationFactory禁用服务

时间:2019-05-28 11:19:12

标签: c# asp.net-core integration-testing

我正在向ASP.NET Core Web服务添加集成测试(请参阅Microsoft在Integration tests in ASP.NET Core上的文章,并且我已经扩展了WebApplicationFactory,以将数据库提供程序替换为内存数据库。 ,ASP.NET Core Web服务包括默认情况下启用的其他服务。

可以通过服务对象停止/禁用每个服务,但是在GetRequiredService()上对WebApplicationFactory.ConfigureServices()的调用将抛出System.InvalidOperationException

有人知道是否可以禁用默认服务吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

var service = services.FirstOrDefault(d => d.ServiceType == typeof(IService));
if (service != null)
{
    services.Remove(service);
}

在你的 CustomWebApplication 工厂范围内

builder.ConfigureTestServices(services => ...)