Я пишу интеграционные тесты для своего проекта, и у меня есть следующий сценарий.
У меня есть базовый класс, от которого наследуются все тестовые классы.
Конструктор моего базового класса выглядит так:
public KrampHubServiceIntegrationTestBase()
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true)
.Build();
_apiSettings = config.GetSection("ApiSettings").Get<ApiSettings>();
var builder = new WebHostBuilder()
.UseStartup<Startup>()
.UseConfiguration(config);
var server = new TestServer(builder);
_client = server.CreateClient();
}
Теперь, когда он вызывает .UseStartup () Я полагаю, это точка, в которой говорится о том, чтобы перейти в мой другой проект (запуск является частью проекта, который я тестирую) и использовать этот запуск (который вводит различные интерфейсы и реализации, где есть также значения моего appsettings.json). Мне нужно изменить appsettings.json, сеанс ApiSettings до того, как Startup начнет работать. Как мне этого добиться? Заранее спасибо!