程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 單元測試:在您的數據庫項目中應用測試驅動的開發

單元測試:在您的數據庫項目中應用測試驅動的開發

編輯:關於SqlServer

本文討論:

TDD 的優點

在數據庫開發中應用單元測試

組合 T-SQL 與 .NET 兼容的語言

連接、測試條件和事務

本文使用了以下技術:

Visual Studio 2008, SQL Server

LMicrosoft 於 2006 年 11 月發布了 Visual Studio® Team System Database Edition,也稱為 DBPro 或 Data Dude,它向產品生命周期方法中引入了數據庫開發。DBPro 還引進了數據庫單元測試設計 器,使用它可以輕松地生成或編寫面向 T-SQL 的單元,在開發前驗證數據庫對象。在本文中,我將深入 闡述數據庫單元測試,解釋運用功能的方法,展示如何對您自己的數據庫項目執行單元測試。

軟件開發中的單元測試

在軟件開發中,單元測試在確保質量水平和滿足裡程碑要求方面發揮著重要的作用。盡管很多開發人 員均認可單元測試的重要性,但他們大都不會在產品周期結束時花費時間編寫單元測試。為解決這一問題 ,測試驅動開發 (TDD) 方法應運而生。開發人員可以使用這種方法在實際運用功能前編寫單個功能的單 元測試。這樣,開發人員就可以從外到內查看 API,盡可能簡化設計。

如今,眾多使用 C# 和 Visual Basic® 的開發人員均以 TDD 為指導,通過創建單元測試在尚未 編寫的類上試用方法,然後利用最少量的代碼編譯測試。如果編譯後的測試失敗,開發人員只需編寫通過 下一輪測試所必需的代碼即可。每次迭代時均運行所有單元測試來驗證沒有出現回歸錯誤。應用程序和單 元測試代碼隨後簽入源代碼控件。每個單元測試針對所開發的方法運行兩次。

為充分發揮作用,單元測試在其運行前必須設置自身的執行環境,以便穩定地驗證其專門測試的代碼 。實施並驗證測試後,將其簽入源代碼控件並在產品生命周期的其余部分使用,以確保按預期繼續使用方 法。

由於您需要提供穩定的測試環境以便在簽入更改前驗證代碼,TDD 也因此在數據庫開發中變得更具挑 戰性。為了讓數據庫單元測試成功運行,它必須具備合適的架構和數據。這意味著為運行測試,其他開發 人員在創建單元測試時必須重用您所使用的環境。如果沒有大量造價高昂的基礎結構,這一點很難實現。 幸運的是,DBPro 能讓身處這一環境的開發人員遵循相同的單元測試流程。

從源代碼控件中獲得最新的測試和數據庫項目,然後將新存儲的過程加入數據庫項目中。配置過程的 輸入和輸出參數。

右鍵單擊新存儲的項目,然後選擇“create unit tests”(創建單元測試)。將單元測試 添加到現有的測試項目中。新測試類加入帶有 T-SQL 的測試項目,T-SQL 將使用默認輸入參數執行新存 儲的過程。

修改輸入參數以包含預期值,然後添加測試條件以驗證存儲的過程是否返回了預期的結果。

運行測試。進行測試設置時,將數據庫項目部署到本地的 SQL Server® 實例中,並執行數據生成 計劃以用預期的測試數據填充新部署的數據庫。針對本地 SQL Server 實例執行測試,測試會失敗(這是 預期的結果,因為存儲過程的邏輯尚未執行)。

執行存儲過程的邏輯並再次運行測試。部署更新後的存儲過程並通過測試。

運行所有測試來驗證數據庫,然後將存儲的過程和單元測試代碼簽入源代碼控件中。

DBPro 提供的功能包括:從現有的函數、存儲的過程或觸發器生成存根 T-SQL 單元測試;自動將數據 庫項目更新部署到沙箱實例中;使用數據生成計劃在測試環境設置過程中生成數據;以及針對目標數據庫 執行 T-SQL 測試。盡管這些功能可一起使用,但並不要求必須這樣做。例如,可以從頭編寫數據庫單元 測試,不必在每個測試運行前都生成數據。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved