我正在創建一個調用創建任務方法的單元測試。創建任務方法調用一些模擬的外部對象,這些是我測試的目的,但在我測試的方法中,還有一個SaveChanges
調用可以保存我的任務。 我想要做的是在System.Data.Entity
內填充DbContext
類,以便SaveChanges
方法不再訪問數據庫。如何用微軟假貨填充DbContext?
我添加了一個假的組件,用於System.Data.Entity
但是當我使用System.Data.Entity
.Fakes它說:「無法解析符號‘正版正貨’」,雖然我可以訪問System.Data.Fakes
(但我have't添加System.Data假的組裝)
我在我的實體上下文中僞造了其他方法,但由於該方法是從DbContext繼承的,因此我無法在我的實體上僞造SaveChanges方法。
ShimDBEntities.AllInstances.SaveChanges = (x) => { ... };
上面的代碼塊說「無法解析符號'SaveChanges'」。
那麼如何使用Microsoft Fakes來填充DbContext?
我不是墊片的這樣的粉絲,尤其是在你的DbContext。我想你可能需要重新考慮你的設計以更好地測試你的代碼。檢查我的博客文章關於這個問題:http://sitecore.paragon-inc.com/resources/blogs-posts/the-repo-man – IronMan84 2013-02-21 16:51:08
謝謝,但該項目已在生產和設計尚未被認爲可以測試,所以我正在努力與我擁有的東西一起工作 – 2013-02-21 16:54:52