2016-08-09 4 views
0

私は依存性注入のためにAutofacと共にEntity Framework 6を​​使用しています。ここでAutofacユニットテストを使用したエンティティフレームワーク6 DataContext

は私のデータベースコンテキストラッパーコードです:ここで

public interface IOliveDataContext 
{ 
    OlivesHealthEntities Context { get; } 
} 

がその実装である:単位のためのインメモリデータベース接続でデフォルトコンテキストをラップするとにかくがある場合

public class OliveDataContext : IOliveDataContext 
{ 
    public OlivesHealthEntities Context => new OlivesHealthEntities(); 
} 

私は疑問に思いますテストするか、テストを行うために他のデータベースに接続する必要があります。

誰でも教えてください。

P/s:私はEF6で単体テストについていくつか読んできましたが、常に現在のアプリ実装とは異なるコンテキストインターフェイスを作成しています。

+0

[DbContextを模擬する](https://msdn.microsoft.com/en-us/library/dn314429.aspx)が簡単になる場合があります。これにより、ビヘイビアーをカスタマイズして条件をアサーションすることができます。統合テストを実行したい場合は、[制御された方法でデータベースをセットアップする](http://stackoverflow.com/a/22691703/1269511)、マッピングロジックをテストできます。 –

答えて

1

インメモリデータベースのインスタンスについては、その目的でEffortがあります。メモリ上のエンティティフレームワークエンジンを使用して実際のデータベースをシミュレートします。 これには制限がありますが、ストアドプロシージャ、ビュー、トリガーをシミュレートできませんでした。

関連する問題