コード例 #1
0
        public MockControllerFixture()
        {
            DbContextOptions <PingPongContext> options = new DbContextOptionsBuilder <PingPongContext>()
                                                         .UseInMemoryDatabase(databaseName: "PingPongTesting")
                                                         .Options;

            DbContext = new PingPongContext(options);
            DatabaseSeed.InitializeMockDatabaseRecords(DbContext);
        }
コード例 #2
0
        protected override void ConfigureWebHost(IWebHostBuilder builder)
        {
            builder.ConfigureServices(services =>
            {
                // Create a new service provider.
                var serviceProvider = new ServiceCollection()
                                      .AddEntityFrameworkInMemoryDatabase()
                                      .BuildServiceProvider();

                // Add a database context (ApplicationDbContext) using an in-memory
                // database for testing.
                services.AddDbContext <PingPongContext>(options =>
                {
                    options.UseInMemoryDatabase("PingPongTesting");
                    options.UseInternalServiceProvider(serviceProvider);
                });

                // Build the service provider.
                var sp = services.BuildServiceProvider();

                // Create a scope to obtain a reference to the database
                // context (ApplicationDbContext).
                using (var scope = sp.CreateScope())
                {
                    var scopedServices = scope.ServiceProvider;
                    var db             = scopedServices.GetRequiredService <PingPongContext>();
                    var logger         = scopedServices
                                         .GetRequiredService <ILogger <MockWebApplicationFactory <TStartup> > >();

                    // Ensure the database is created.
                    db.Database.EnsureCreated();

                    try
                    {
                        // Seed the database with test data.
                        DatabaseSeed.InitializeMockDatabaseRecords(db);
                    }
                    catch (Exception ex)
                    {
                        logger.LogError(ex, $"An error occurred seeding the " +
                                        "database with test messages. Error: {ex.Message}");
                    }
                }
            });
        }