如何正确设置xUnit测试项目中的DbContext?

时间:2017-09-14 20:59:12

标签: c# entity-framework entity-framework-core xunit

我有以下代码在.Net core 2.0控制台程序中设置DBContext,并将其注入主应用程序类的构造函数。

yview

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

textbox.yview("scroll", -100, "units"

它得到参数 IConfigurationRoot configuration = GetConfiguration(); services.AddSingleton(configuration); Conn = configuration.GetConnectionString("ConnStr1"); services.AddDbContext<MyDbContext>(o => o.UseSqlServer(Conn)); 的错误不能为空。如何正确设置测试项目中的DbContext?

3 个答案:

答案 0 :(得分:4)

我找到了办法。

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

答案 1 :(得分:4)

George Alexandria的解决方案对我有用:

var optionsBuilder = new DbContextOptionsBuilder<MyDbContext>();
optionsBuilder.UseInMemoryDatabase(); 
var context = new MyDbContext(optionsBuilder.Options);

答案 2 :(得分:2)

EF 2.0要求所有内存数据库都已命名,因此请务必这样命名:

var optionsBuilder = new DbContextOptionsBuilder<MyDbContext>();
optionsBuilder.UseInMemoryDatabase("MyInMemoryDatabseName"); 
var context = new MyDbContext(optionsBuilder.Options);