using System.Linq; using Microsoft.EntityFrameworkCore; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.DependencyInjection; using Microsoft.AspNetCore; namespace TDD.Tests { public class PatientTestsDbWAF<TStartup> : WebApplicationFactory<TStartup> where TStartup : class { protected override IWebHostBuilder CreateWebHostBuilder() { return WebHost.CreateDefaultBuilder() .UseStartup<TStartup>(); } protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureServices(async services => { // Remove the app's DbContext registration. var descriptor = services.SingleOrDefault( d => d.ServiceType == typeof(DbContextOptions<DataContext>)); if (descriptor != null) { services.Remove(descriptor); } // Add DbContext using an in-memory database for testing. services.AddDbContext<DataContext>(options => { // Use in memory db to not interfere with the original db. options.UseInMemoryDatabase("PatientTestsTDD.db"); }); }); } } }