ASP EFProf(Entity Framework Profiler)を使用した単体テストでの努力を使用したボイラプレートの問題

asp.net-boilerplate effort entity-framework entity-framework-6 unit-testing

質問

ASP Boilerplate( http://www.aspnetboilerplate.com/ )でEFProf( http://www.hibernatingrhinos.com/products/EFProf )を使用している問題があります

単体テストの場合、ASP Boilerplateは、メモリ内のデータベースをモックするためにEffort( https://github.com/tamasflamich/effort )を使用します。

EFProfへの参照を追加せずに単体テストを実行すると、テストは正しく実行されます(緑色)。

初期化行を追加すると:

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

私のテストベースのctorまたは私のアプリケーションプロジェクトのInitialize()、私は次のエラーが表示されます:

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

ComponentActivator:MyApp.EntityFramework.MyAppDataContextをインスタンス化できませんでした

内部例外には関連情報があります。

Error: Unable to cast object of type 'Effort.Provider.EffortConnection' to type 'HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledConnection'.

エフォートはEFProfと互換性がありませんか?あるいは私は何かを盲目的に明白な私の初期化で間違ってやっていますか?

受け入れられた回答

私自身の質問に答えます:EbortはDbContectオブジェクトをフェイクしますが、実際にはメモリ内でSQLを作成しないため、プロファイラによって傍受するものはありません。また、EF6のDatabase.LogをEffortとともに使用しているときにCommandTextが常にヌルである理由もあります。

この記事のEffortを利用したAsp Boilerplateのテストプロジェクトの代わりにテスト用のメモリ内データベース実装を使用するには、MoqにEF6を使用してみてください: https : //msdn.microsoft.com/en-us/library/dn314429 (v = 117).aspx




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ