我想知道其他人可能用什麼方法測試數據庫的域服務?我已經有了一系列模擬存儲庫,可以在域服務中使用它們來測試域服務本身。這些模擬存儲庫的部分構建是,他們創建樣本聚合和關聯實體,並根據模型中使用的相同業務規則進行驗證。這也提供了一個很好且簡單的方法來檢測實體本身內的潛在影響點,如果它們的界面發生變化。針對真實數據庫的單元測試域服務
我對SQL支持存儲庫的實時測試看到的主要問題是數據庫一致性。例如,一旦運行測試,「創建」方面就已經運行。由於數據庫不再是原始的,所以再次運行它們顯然會導致失敗。我正在考慮創建一個僅用於此類測試的鏡像數據庫。這將是最小的,包含結構,可編程性,約束等。我還會爲某些已建立的測試提供最小的一組數據。我的思路是,我可以調用一個存儲過程,在測試運行開始之前,使用基礎數據將數據庫重置爲「pristine」狀態。
儘管在功能初步驗證後,這對開發人員機器來說並不重要,但我更多地關注在夜間構建中運行這些測試的重要性;以便在測試失敗的情況下,構建可以被阻止以免污染目標部署環境(具體而言,在這種情況下,測試團隊將使用環境)。
我並不認爲,平臺的問題,但如果任何人有實施的具體問題,我的環境如下所示:
的Windows 7(開發)/在Windows Server 2008 R2(服務器) 的Visual Studio 2008團隊版(C#) Microsoft SQL Server 2008標準版(開發/服務器)
我正在使用Team Build來運行我的構建,但這很可能不是問題範圍中的一個因素。
這是一個好主意。我的存儲庫已經有一個「工作單元」模式實現,我正在使用它自動創建一個TransactionScope()。我沒有想過要添加一個Rollback()方法來處理我的Commit(),但這可能只是這種情況下最簡單的方法。 – 2009-09-12 22:41:36
這工作得很好。再次感謝!比我考慮的其他方法要容易得多! – 2009-09-13 01:57:41