2008-11-21 60 views
11

我是單元測試新手。但是,如何單元測試用實體框架編寫的DAL,因此我可以確保我的DAL代碼正常工作,但沒有實際觸及數據庫?請有人提供儘可能詳細的信息。如何正確單元測試我的DAL?

回答

15

如果你想測試你的數據訪問層是否工作正確,你真的需要在某個時候對數據庫進行測試,否則你實際上並沒有測試它的效果。

+0

+1如果一個測試數據庫不存在,真的應該創建一個(似乎OP是關心數據更新)。 – 2008-11-21 19:24:18

+1

模擬的作用是什麼?有人可以解釋一下測試數據庫的作用嗎? – 2008-11-21 20:27:02

4

當我單元測試我的DAL時,我使用事務並在單元測試結束時回滾,所以db是乾淨的。

4

單元測試DAL是開發中非常常見的頭痛問題。大多數情況下,我建議你跳過它。

現在大多數ORM都提供某種查詢語言,無論是LINQ或HQL還是其他一些風格。因爲一個適當的單元測試要求你實際上沒有碰到數據庫,所以你必須嘲笑ORM,這樣做是你能想到的最大的麻煩。這不值得,國際海事組織。最終,您只會最終測試您在代碼中編寫了適當的查詢;你根本沒有迴歸價值,並且可以通過檢查代碼來更好地服務你的目的。

我不是說你不應該測試你對DAL的使用,只是不要嘗試單元測試。您仍應該爲您的程序/系統提供一套集成和用戶驗收測試;讓那些處理測試你的數據訪問。