コード ファーストの Entity Framework オブジェクトを実装する DbContext から継承するクラスがあります。
この dbcontext でモデル ビルダーを実行する単体テストが必要です。これは、「キーがエンティティで定義されていません」などのエラーを検出するのに役立ちます。
しかし、単体テスト中に実際のデータベースを利用できない場合があります。実際にコンテキストとのデータベース接続を試みずに、このコードを実行する方法はありますか? 私は次のような無害なことを試しました:
var ctx = new MyDbContext("Data Source=(local);Initial Catalog=Dummy;<.......>");
var foo = ctx.GetValidationErrors(); //triggers DBModelBuilder, should throw if my DBModel is goofed up
これは技術的に機能します。ただし、これは実行に非常に長い時間がかかります。コール スタックを一時停止して検査すると、System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin への呼び出しがトリガーされます。
最終的にタイムアウトになり、接続エラーを飲み込んでテストを終了します。
接続を試みずにこれを行う方法はありますか?