예제 #1
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureServices(services =>
            {
                // Remove the app's ApplicationDbContext registration.
                ServiceDescriptor descriptor = services.SingleOrDefault(d => d.ServiceType == typeof(DbContextOptions <ToDoDbContext>));

                if (descriptor != null)
                {
                    services.Remove(descriptor);
                }

                // Add ApplicationDbContext using an in-memory database for testing.
                services.AddDbContext <ToDoDbContext>(options =>
                {
                    options.UseSqlite("Data Source=ToDoTest.db");
                });

                ServiceProvider sp = services.BuildServiceProvider();

                using (IServiceScope scope = sp.CreateScope())
                {
                    IServiceProvider scopedServices = scope.ServiceProvider;
                    ToDoDbContext db = scopedServices.GetRequiredService <ToDoDbContext>();
                    db.Database.EnsureDeleted();
                    db.Database.Migrate();
                    db.LoadFixtures();
                }
            });
        }