1 回答

TA貢獻1770條經驗 獲得超3個贊
您可以用來WebHostBuilder.ConfigureTestServices
調整集成測試服務器使用的服務配置。這樣,您可以重新配置數據庫上下文以使用不同的配置。文檔的集成測試章節也涵蓋了這一點。
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
? ? // …
? ? builder.ConfigureTestServices(services =>
? ? {
? ? ? ? // remove the existing context configuration
? ? ? ? var descriptor = services.SingleOrDefault(d => d.ServiceType == typeof(DbContextOptions<ApplicationDbContext>));
? ? ? ? if (descriptor != null)
? ? ? ? ? ? services.Remove(descriptor);
? ? ? ? services.AddDbContext<ApplicationDbContext>(options =>
? ? ? ? ? ? options.UseInMemoryDatabase("TestDB"));
? ? });
}
傳遞給的配置ConfigureTestServices將始終在 后運行,因此Startup.ConfigureServices您可以使用它來覆蓋集成測試的實際服務。
對于大多數情況,只需在現有注冊上注冊其他類型即可使其適用于所有地方。除非您實際上檢索單一類型的多個服務(通過注入IEnumerable<T>某處),否則這不會產生負面影響。
- 1 回答
- 0 關注
- 169 瀏覽
添加回答
舉報