2017-09-14 53 views
1

我有以下代码在.Net核心2.0控制台程序中设置DBContext并将其注入到主应用程序类的构造函数中。如何正确设置xUnit测试项目中的DbContext?

IConfigurationRoot configuration = GetConfiguration(); 
    services.AddSingleton(configuration); 
    Conn = configuration.GetConnectionString("ConnStr1"); 

    services.AddDbContext<MyDbContext>(o => o.UseSqlServer(Conn)); 

现在,我创建了一个测试的xUnit类需要初始化测试相同的DbContext。

context = new MyDbContext(new DbContextOptions<MyDbContext>()); 

它获取参数connectionString的错误不能为空。如何正确设置测试项目中的DbContext?

+3

你只需要设置的选项吧。举例来说,这个选项用于将db存储在内存中: 'var optionsBuilder = new DbContextOptionsBuilder (); optionsBuilder.UseInMemoryDatabase(); var context = new MyDbContext(optionsBuilder.Options);' –

回答

1

我找到了一个办法。

var dbOption = new DbContextOptionsBuilder<MyDbContext>() 
    .UseSqlServer("....") 
    .Options; 
0

对我来说,George Alexandria的解决方案的工作:

var optionsBuilder = new DbContextOptionsBuilder<MyDbContext>(); 
optionsBuilder.UseInMemoryDatabase(); 
var context = new MyDbContext(optionsBuilder.Options); 
相关问题