2011-11-25 49 views
0

我在我的應用程序中使用實體框架Code-First,我將單元測試一些服務。我建立了Repository和Unit of Work模式,並且試圖找出爲我的測試僞造這些對象的最佳方法。我當然可以爲我的測試創建完全虛假的Repository和Unit of Work類,但是我想避免重新實現DbContext的許多功能(例如,管理相關對象,更改跟蹤等)假貨。是否可以在不連接數據庫的情況下使用DbContext?

我真的希望這樣的DbContext做除了一切:

  1. 試圖檢索從底層數據存儲任何東西。
  2. 試圖向底層數據存儲區寫入任何內容。

這可能嗎?

回答

0

只要他們正在實施適當的接口,你的倉庫的價值應該不需要任何重新實現你的上下文。最多他們只需要包含一個關聯實體類型的內存列表。或者,使用模擬框架(如Moq)來創建假實現。

0

您可以將SQL Server Compact Edition數據庫用於您的設備/集成測試。您可以通過數據庫初始化程序創建CE數據庫。該數據庫將具有與數據庫類似的結構,並且EF API將無需任何修改即可使用。

但是,如果您已使用存儲過程或數據庫特定功能,那麼您運氣不好測試這些功能。

相關問題