在EFProf(Entity Framework Profiler)的單元測試中使用Effort的ASP Boilerplate問題

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

使用EFProf( http://www.hibernatingrhinos.com/products/EFProf )與ASP Boilerplate( http://www.aspnetboilerplate.com/ )有問題。

對於單元測試,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'.

Effort是否與EFProf不兼容?或者我在初始化時做了一些明顯錯誤的事情?

一般承認的答案

回答我自己的問題:Effort偽造了DbContect對象但實際上並沒有為內存創建SQL,因此沒有任何東西可以被分析器攔截。這也是使用EF6的Database.Log with Effort時CommandText始終為null的原因。

我將嘗試使用Moq和EF6來使用內存數據庫實現進行測試,作為Asp Boilerplate的測試項目的替代方案,該項目利用了本文的Effort: https ://msdn.microsoft.com/en-us/library/dn314429 (v = vs.113)的.aspx




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因