c# - AspNetCore Web 应用程序有 100 多个服务。如何为单元测试项目注册所有这些依赖项
问题描述
AspNetCore Web 应用程序有 100 多种服务,可通过 ServiceProvider 使用,并可在 ServiceCollection 列表中查看。示例服务:IConfigurtion、IConfiguration 提供程序等。
如何为单元测试项目注册所有这些依赖项。
我猜,在 Web 项目中,这些依赖项注册在 'WebHost.CreateDefaultBuilder' 方法中。
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => options.AddServerHeader = false)
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
}
在我的单元测试项目中。我可以一一注册这些服务,但是查看这么长的依赖列表效率不高。
services.AddSingleton<IConfiguration, ConfigurationRoot>();
我可能不需要它们,但是运行单元测试项目并发现这个初始化失败或者那个等很麻烦。
注意:使用以下语法注册 DbContext 是注册大约 12 个服务。
services.AddDbContext<AppDbContext>(options =>
options.UseInMemoryDatabase("Db"),
ServiceLifetime.Scoped
);
所以我的问题是,我是否可以调用任何方法,以便在 Web 项目中为我的 UnitTest 项目正确解析依赖项。
注意:我可以处理我在 Web 中注册的那些服务。我只关心那些在框架后面注册的那些。
任何帮助表示赞赏。谢谢!
解决方案
推荐阅读
- android - 寻找在 Android 中以 Single Activity App 方法实现 SearchView 的想法
- c++ - 在 C++ 的任何修订版中,是否明确定义了联合的使用?
- java - 使用 org/json/json/20171018 存储库读取 Java 中的 JSON 数据
- python - NumPy complex128除法与float64除法不一致
- google-apps-script - 谷歌表格 - 线性比例
- netezza - Netezza 通过联合 2 个表创建表
- spring-boot - 使用 Citrus 模拟 SFTP 和 Kafka 以进行基于 Spring-Boot apache-camel xml 的路由的集成测试?
- excel - 根据另一个单元格更改列值
- testing - 如何在 Flutter 小部件中测试回调函数
- javascript - 在收到来自单个工作人员的消息后发送所有工作人员消息