2013-07-11 97 views
1

這是我第一次做單元測試,所以我試圖找到如何進行單元測試的DAO的參考。你們能舉一個簡單的例子:setUpBeforeClass,setUphow to test a method that inserting new data in database using model for this。只是一個簡單的例子,使用簡單的模擬。感謝您的考慮單元測試的DAO

+0

對於什麼編程語言?使用什麼單元測試框架? – zerkms

+0

我不確定你在找什麼。一個簡單的谷歌搜索會引發大量關於SO和大量文檔的問題和答案,並提供相應的策略。 –

+0

@zerkms我使用的是java和mockito,如果我沒有弄錯 – newbie

回答

0

使用模擬對象執行單元測試的想法讓我感到奇怪,因爲您所做的只是測試您的模擬對象而不是真實模擬對象。如果你認爲你需要使用模擬對象來模擬數據庫訪問,那麼你的整個架構是錯誤的。我個人使用三層體系結構構建我的所有軟件,我可以在業務層中擁有儘可能多的對象,但數據訪問層中只有一個對象。因此,如果我想用真正的數據庫訪問交換真正的數據庫訪問,我會在哪裏進行更改?我的業務層中的所有200多個對象,還是數據訪問層中的1個對象?爲什麼我應該實現一個機制來改變我的應用程序中的每個對象,當我真正需要做的是改變一個呢?

控制器意味着集成測試,而不是單元測試。但是測試金字塔規定單位級別應該是重點,因此人們默認會被吸引進去。

斷言在任何情況下都不應該失敗。 如果它們在測試中失敗,則表示存在邏輯錯誤。 基本上,如果你的函數在執行「assert(0)」而不是返回一個錯誤代碼,那麼這個函數應該被重寫。

您可以對類定義進行大規模更改 - 甚至可以拋出所有東西並將其替換爲完全不同的實現 - 而不影響任何使用該類的對象的代碼?

不幸的是,由於像Java這樣的剛性語言產生了各種各樣的模式,依賴注入已經廣泛傳播,並被推崇爲跨語言的最佳實踐,以克服靈活性和可塑性帶來的好處。

參考