Веб-приложение AspNetCore имеет более 100 сервисов, которые доступны через ServiceProvider и могут быть просмотрены в списке ServiceCollection.
Примеры услуг: IConfigurtion, поставщик IConfiguration и т. Д.
Как зарегистрировать все эти зависимости для проекта Unit Test.
Полагаю, в веб-проекте эти зависимости регистрируются в методе 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
);
Итак, мой вопрос, Существуют ли какие-либо методы, которые я могу вызвать, чтобы зависимости правильно определялись для моего проекта UnitTest, как это происходит с веб-проектом.
Примечание: я могу обрабатывать те сервисы, которые зарегистрированы мной в сети. Я обеспокоен только теми, которые зарегистрированы за этой сценой Framework.
Любая помощь приветствуется. Спасибо!