在哪里为.NET5测试项目连接依赖注入?



我有一个测试项目,测试一个大型项目解决方案的各个部分。许多这样的测试需要数据库访问(连接到测试数据库)和大量的服务才能工作。目前,我所有的测试类都继承自一个通用的BaseTest类,该类通过调用BaseTest构造函数中的以下代码来注册DI:

public IHostBuilder CreateHostBuilder(string[] args = null) =>
Host.CreateDefaultBuilder(args)
.UseSerilog()
.ConfigureServices((hostContext, services) =>
{
//Omitted for brevity
_mediator = _provider.GetService<IMediator>();
});

这工作完美,但我怀疑它不必要地被每个测试类调用。是否有类似于Program.cs或某种测试项目可以调用此代码一次的方式?我可以将这些代码从基本构造函数移动到哪里来实现这一点?

我最终选择了XUnit。更丰富的特性和xUnit。DependencyInjection nuget包支持直接在Startup.cs中进行依赖注入,就像我们习惯的那样,不需要额外的配置就可以直接进行依赖注入:

public class Startup
{
public static void ConfigureHost(IHostBuilder hostBuilder)
{
hostBuilder.UseSerilog();
}
public static void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<ISomeService, SomeService>();
//...
}
}

相关内容

  • 没有找到相关文章

最新更新