2008-09-24 39 views

回答

2

對於我的團隊來說,它是開發者機器上的內存,以及持續集成服務器上的真實數據庫。

7

內存是您的單元的最佳選擇-測試,當數據很容易爲您給定的測試用例種子和正在測試的特定操作。對於集成測試,真實數據庫更好,其中數據先決條件更加複雜,並且在測試完成後保留基礎數據是有價值的。對於我們來說,我們在我們的「快速」JUnit測試套件中唯一允許的是沒有任何外部依賴項(數據庫,文件,網絡等)的東西,這樣套件就可以快速有效地運行由開發人員和持續集成的簽入。如果有一個絕對需要去DB的測試,那麼記住一個是唯一的方法。

有幾點要記住:

  • 仔細想一想,如果你需要在單元測試都使用一個數據庫 。它可能表示設計不佳 ,因爲數據訪問層是 與業務耦合得太緊 您試圖測試的邏輯和 不能被嘲笑。
  • 如果使用真實數據庫進行集成測試,請確保測試總是在完成時將數據恢復到原始狀態。我看過很多浪費時間和集成測試失敗的原因,因爲其他一些測試搞砸了數據。

至於你的其他問題,這真的取決於你的需要。一個好的經驗法則是每個代碼分支一個開發數據庫,​​因爲可能需要與另一個代碼分支無關的模式更改。只有擁有一個專門的開發數據庫很重要;我很驚訝有多少開發團隊必須與QA團隊共享數據庫等。能夠在不影響其他團隊或防止其他團隊工作的沙盒環境中進行更改非常重要,因此如果你已經滿足了你做得很好的要求。

相關問題