質問: ASP Boilerplate( )でEFProf( )を使用している問題があります 。 単体テストの場合、ASP Boilerplateは、メモリ内のデータベースをモックするためにEffort( )を使用します。 EFProfへの参照を追加せずに単体テストを実行すると、テストは正しく実行されます(緑色)。 初期化行を追加すると: ``` HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize(); ``` 私のテストベースのctorまたは私のアプリケーションプロジェクトのInitialize()、私は次のエラーが表示されます: ``` Castle.MicroKernel.ComponentActivator.ComponentActivatorException ``` 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.aspx) : //msdn.microsoft.com/en-us/library/dn314429 (v = 117).aspx.aspx)