您何時測試In-Memory Database與開發數據庫?在哪些情況下您是否針對內存數據庫而不是開發數據庫進行測試?
另外,作爲一個相關的問題,當您使用開發數據庫時,您使用個人開發數據庫,集成開發數據庫還是兩者?
另外++,對於單元測試,你什麼時候使用內存數據庫來模擬你的Repository/DAL等?
您何時測試In-Memory Database與開發數據庫?在哪些情況下您是否針對內存數據庫而不是開發數據庫進行測試?
另外,作爲一個相關的問題,當您使用開發數據庫時,您使用個人開發數據庫,集成開發數據庫還是兩者?
另外++,對於單元測試,你什麼時候使用內存數據庫來模擬你的Repository/DAL等?
對於我的團隊來說,它是開發者機器上的內存,以及持續集成服務器上的真實數據庫。
內存是您的單元的最佳選擇-測試,當數據很容易爲您給定的測試用例種子和正在測試的特定操作。對於集成測試,真實數據庫更好,其中數據先決條件更加複雜,並且在測試完成後保留基礎數據是有價值的。對於我們來說,我們在我們的「快速」JUnit測試套件中唯一允許的是沒有任何外部依賴項(數據庫,文件,網絡等)的東西,這樣套件就可以快速有效地運行由開發人員和持續集成的簽入。如果有一個絕對需要去DB的測試,那麼記住一個是唯一的方法。
有幾點要記住:
至於你的其他問題,這真的取決於你的需要。一個好的經驗法則是每個代碼分支一個開發數據庫,因爲可能需要與另一個代碼分支無關的模式更改。只有擁有一個專門的開發數據庫很重要;我很驚訝有多少開發團隊必須與QA團隊共享數據庫等。能夠在不影響其他團隊或防止其他團隊工作的沙盒環境中進行更改非常重要,因此如果你已經滿足了你做得很好的要求。