2017-09-14 10 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 nullにすることはできません。テストプロジェクトで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); 
関連する問題