5

在我的項目中,我遵循存儲庫模式以便輕鬆地單元測試我的ASP.NET MVC應用程序。這使我可以輕鬆地模擬物體。測試使用DbContext的存儲庫的最佳方法

但是,我沒有通過這種方式測試存儲庫邏輯。

例如,看到下面的博客文章:

How to Work With Generic Repositories on ASP.NET MVC and Unit Testing Them By Mocking

這是我做什麼,以及如何測試我的ASP.NET MVC應用程序。

您認爲使用DbContext類來測試數據的測試存儲庫的最佳方式是什麼?

  • 直接從數據庫中獲取數據? (我認爲這將是最糟糕的,但我不知道你的thopughts)
  • 我應該創建一個假數據庫,並用虛擬數據填充它並指向EF來連接該數據庫?

以及您可能會建議的任何其他方法。

編輯:

我使用EF 4.2在這裏。

回答

7

存儲庫是數據庫的入口點,因此測試它的唯一方法是使用集成測試並在測試數據庫上工作。您可以使用事務測試,其中每個測試將在測試結束時設置事務和回滾,以保持測試數據對於所有測試都是相同的。

+1

我明白了。因此,唯一的方法是克隆數據庫結構,使用僞造的數據對其進行種子處理,並指向EF以在測試項目中使用該數據庫。我有沒有得到那個權利? – tugberk 2011-12-26 12:32:49

+2

是的。這是測試存儲庫的正確方法。 – 2011-12-26 12:33:42