|
我們開發一個系統必須與數據庫打交道,需要寫N個SQL、存儲過程、自定義函數、視圖等,那么能否使用Visual Studio 2008進行數據庫測試嗎?當然是可以的,下面我就以一個簡單的為例子,介紹如何利用Visual Studio 2008進行數據庫單元測試。
第一步,在Visual 2008里面增加數據庫測試,如下圖所示:
>這樣我們就添加好一個數據庫單元測試,下面就是如何設置此單元測試是針對哪個數據庫的。
第二步:指定當前測試項目的數據庫配置
當我們新增加一個數據庫單元測試,Visual 2008會自動彈出配置界面,供我們設置數據庫連接屬性,如下圖:
我們可以選擇一個建立好的數據庫連接:
當然也可以新增一個連接,新增數據庫連接比較簡單,就是設置服務器地址、用戶名、密碼、數據庫名稱等,在此就不介紹了。
Visual 2008不僅支持我們連接一個已經存在的數據庫,還可以運行單元測試前,自動部署一個數據庫供測試,
連接好數據庫后,下面將介紹如何進行單元測試。
第三步:測試用例
在Visual 2008數據庫單元測試的“設計”界面,首先會有二個下拉框,如下圖所示:
左側的下拉框即是數據庫單元測試的每個“測試方法”,你可以把他當成代碼單元測試的函數,系統默認會有二個:公共腳本和DatabaseTest1,如下圖:
- 公用腳本:在執行此單元測試前運行的SQL腳本,包括“測試初始化”和“測試清理”,即對應的準備數據的腳本、測試完成后刪除數據的腳本,可以保證每次執行單元測試時,數據都是一致的。
- 測試方法:可以新增、刪除、重命名,可以通過增加測試方法來實現不同用例的驗證。
第四步:編寫測試腳本
針對每個測試方法可以編寫測試SQL腳本,即SQL語句,只要能夠在測試數據庫中正確執行的SQL語句都可以,然后針對你編寫的SQL語句執行的結果進行驗證,如下圖:
此段SQL語句是讀取成本系統的業務參數,我們可以針對此SQL進行驗證其正確性,Visual 2008支持六種測試條件:
- 標量值:可以判斷第幾個結果集的第幾行的第幾列的值是多少,不相等則驗證失敗。
- 非空結果集:判斷第幾個結果集必須有記錄,否則驗證失敗。
- 空結果集:判斷第幾個結果集必須沒有記錄,否則驗證失敗。
- 沒有結論:無結論就是測試沒有結果,注意當你新增加一個測試方法時,Visual會自動生成一個沒有結論的測試條件,如果你不需要,則手動刪除掉。
- 行數:判斷第幾個結果集返回的行數,否則驗證失敗。
- l執行時間:判斷執行時間必須少于多少,否則驗證失敗,用于性能測試。
那么針對上面的SQL語句,我們可以驗證返回的行數,可以通過行數的多少,驗證成本系統的業務參數數量是否正確,如下圖:
當返回的行數等于30時,代表數據庫中的數量是正確的。當然你也可以增加其它測試條件,如使用標量值驗證參數的名稱是否正確等。
第五步:運行測試
點擊“運行測試”按鈕即可得到測試結果,如下圖所示:
測試沒有通過,可以查看錯誤信息:RowCountCondition 條件(rowCountCondition1)失敗: 結果集 1: 32 行與預期的 30 行不匹配。
分析原因,數據庫執行的結果有32行,與測試條件不匹配,修改測試條件,重新運行測試,測試通過,如下圖:
Visual 2008數據庫單元測試通過編寫SQL腳本,然后設置不同的測試條件,通過驗證測試條件是否匹配還進行測試,因此你可以寫任何SQL語句進行驗證,這樣就可以驗證表記錄、視圖、存儲過程、函數等,基本包括了所有的數據庫對象。
我們可以通過數據庫單元測試來保證我們每次修改數據庫對象的正確性,也可以保證我們的SQL語句是否提交,只要切換一下測試數據庫即可,可以防止開發人員提交版本時漏掉提交SQL被測試打回的場景了。
NET技術:Visual Studio 2008單元測試_數據庫測試,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。