使用 SQL Server 單元測試驗證資料庫程式碼
您可以使用 SQL Server 單元測試來建立資料庫的基準狀態,然後驗證您對資料庫物件所做的任何後續變更。
若要建立資料庫的基準狀態,您會建立測試專案並寫入操作資料庫物件的 Transact-SQL 集合。藉由使用這些測試,您可以在隔離的開發環境中驗證那些物件功能是否為預期的功能。SQL Server 單元測試非常適合使用 SQL Server 資料庫專案結合離線資料庫開發一起運作 (如需詳細資訊,請參閱專案導向的離線資料庫開發)。擁有了 SQL Server 單元測試的基準集之後,您就可以使用這些測試,驗證資料庫是否正確運作,然後再將變更簽入至版本控制。
您可以建立測試來驗證任何資料庫物件的變更。此外,您可以自動產生測試資料庫函式、觸發程序和預存程序的 Transact-SQL 程式碼 Stub。
提示
您可以在不開啟資料庫專案的情況下,建立並執行 SQL Server 單元測試。不過,如果您想要自動產生測試指令碼來測試專案中的特定資料庫物件,就必須開啟包含您想要測試之物件的資料庫專案。
當您或您的小組成員變更資料庫結構描述時,您可以使用這些測試來驗證變更是否中斷了現有的功能。您可以建立 SQL Server 單元測試來補充軟體開發人員所建立的軟體單元測試。您必須完成這兩個測試集以驗證應用程式的整體行為。
當程序必須成功時,您的單元測試可以驗證程序是否成功;當程序必須失敗時,則可驗證程序是否失敗。測試適當的失敗是否發生稱為負面測試。
Visual Studio 各版本對 SQL Server 單元測試的支援
SQL Server 單元測試功能是在 2012 年 12 月的 SQL Server Data Tools 更新中加入,可讓您在 SQL Server Professional 和 Visual Studio 2010 Professional (含) 更高版本中建立、修改及執行 Visual Studio 2012 單元測試。
若要確定安裝最新的 SQL Server Data Tools 更新,請存取檢查更新檔對話方塊。
Visual Studio 2010 和 Visual Studio 2012 整合式 SQL Server Data Tools Shell 不支援 SQL Server 單元測試。
一般工作
下表列出支援此案例之一般工作的說明,以及詳細資訊的連結,這些資訊可幫助您成功完成這些工作。
一般工作 | 支援內容 |
---|---|
進行實際操作練習:您可以依照入門逐步解說來熟悉如何建立並執行簡單的 SQL Server 單元測試。這個逐步解說包含了負面 SQL Server 單元測試的範例。 | 逐步解說:建立和執行 SQL Server 單元測試 |
定義 SQL Server 單元測試:您必須在自己的專案中建立 SQL Server 單元測試。您可以針對該專案進行設定,並且針對每個測試定義一個或多個測試條件。 | 建立和定義 SQL Server 單元測試 在 SQL Server 單元測試中使用測試條件 |
執行 SQL Server 單元測試:定義一個或多個單元測試之後,您就可以執行測試、偵錯任何問題,並且檢查測試結果。 | 執行 SQL Server 單元測試 |
管理測試群組 (Visual Studio 2010):如果測試通常應該同時執行,您可能會將測試組織成群組。雖然系統仍然支援測試清單,不過您應該針對新的測試群組考慮改用測試分類。例如,您可能會針對觸發程序或特定「結構描述」(Schema) 中的所有物件測試建立測試分類。 | 定義測試分類以分組測試 定義測試清單以分組測試 |
將您的測試專案和測試簽入至版本控制:在您執行測試並驗證測試是否正確運作之後,就應該將測試專案及所有相關聯的檔案簽入至版本控制,讓所有小組成員都能夠執行您的測試。透過將測試專案與 SQL Server 資料庫專案簽入版本控制,可輕鬆還原資料庫和資料庫測試的相容版本。 | 將檔案加入至版本控制 使用簽入和暫止的變更視窗 |
定義自訂測試條件:如果您必須測試預設測試條件集不包含的行為,可以建立自訂測試條件。您必須將這些條件散發給所有想要執行使用新條件之測試的小組成員。 | 案例:定義 SQL Server 單元測試的自訂測試條件 |
更新現有的單元測試:如果您擁有在舊版 Visual Studio 中建立的資料庫單元測試,就必須先升級這些測試,才能順利使用這個版本建置並執行測試。 Note: 如果您所開啟的方案同時包含來自舊版 Visual Studio 的資料庫專案和資料庫單元測試專案,系統就會提示您升級資料庫專案。系統不會提示您升級資料庫單元測試專案,您必須將它手動升級。 | 升級包含資料庫單元測試的舊版測試專案 |
擴充性:您可以建立擴充功能來擴充 SQL Server Data Tools。 | SQL Server 單元測試的自訂測試條件 |
疑難排解問題:您可以深入了解如何利用 SQL Server 單元測試來疑難排解常見問題。 | 疑難排解 SQL Server 資料庫單元測試的問題 |
相關案例
專案導向的離線資料庫開發
搭配使用 SQL Server 資料庫專案的離線專案開發時,資料庫單元測試特別有效。