共用方式為


在資料庫單元測試中使用測試條件

更新:2007 年 11 月

在典型的「資料庫單元測試」(Database Unit Test) 中,會執行 Transact-SQL (T-SQL)「測試指令碼」(Test Script) 並傳回 ExecutionResult 類別的執行個體。這個類別的執行個體會包含 DataSet、執行時間以及受指令碼影響的資料列。這些資訊會在指令碼執行期間收集。這些結果可以在 T-SQL 指令碼內使用 RAISERROR 函式評估,或可以使用測試條件評估。Visual Studio Team System Database 版提供一組預先定義的測試條件讓您使用。

預先定義的測試條件

下表列出預先定義的測試條件,您可以使用資料庫單元測試設計工具的 [測試條件] 窗格加入這些測試條件。

測試條件

測試條件說明

空白 ResultSet

如果 T-SQL 指令碼傳回的結果集不是空的,即會失敗。

執行時間

如果 T-SQL 測試指令碼執行時間超出預期,即會失敗。預設執行時間為 30 秒。

執行時間只適用於測試指令碼,不適用測試前指令碼或測試後指令碼。

結果不明

永遠會產生結果不明的測試。這是會加到每一個測試中的預設條件。包含這個測試條件的目的,是要指出尚未實作測試驗證。當您已經加入其他測試條件之後,請從您的測試中刪除這個測試條件。

非空白 ResultSet

如果結果集是空的,即會失敗。您可以在測試指令碼中使用這個測試條件,或使用 EmptyResultSet 搭配 T-SQL @@RAISERROR 函式,測試更新是否正常運作。例如,您可以儲存更新前的值、執行更新、比較更新後的值,然後如果沒有得到預期的結果,便會引發錯誤。

資料列數

如果結果集沒有包含預期的資料列數,即會失敗。

純量值

如果結果集中的特定值不等於指定值,即會失敗。預設 [需要的值] 為 null。

注意事項:

[執行時間] 測試條件會指定 T-SQL 測試指令碼執行的時間限制。如果超過此時間限制,測試就會失敗。測試結果也會包含 [持續期間] 統計資料,這與 [執行時間] 測試條件不同。[持續期間] 統計資料不只包含執行時間,也包含兩次連接資料庫的時間、執行任何其他測試指令碼的時間 (例如測試前和測試後指令碼),以及執行測試條件的時間。因此,即使持續期間超過執行時間,測試也會通過。

報告的 [持續期間] 不包括產生資料和部署結構描述所用的時間,因為這些動作是在測試執行之前發生。若要檢視測試持續期間,請在 [測試結果] 視窗中選取測試回合,按一下滑鼠右鍵,然後選擇 [檢視測試結果詳細資料]。

您可以使用資料庫單元測試設計工具的 [測試條件] 窗格,將測試條件加入資料庫單元測試。如需詳細資訊,請參閱 HOW TO:將測試條件加入到資料庫單元測試

您也可以直接編輯測試方法程式碼,加入更多的功能。如需詳細資訊,請參閱在 Visual Basic 或 Visual C# 中自訂資料庫單元測試。例如,您可以加入 Assert 陳述式,將功能加入測試方法。如需詳細資訊,請參閱在資料庫單元測試中使用 T-SQL 判斷提示

可延伸測試條件

除了六個預先定義的測試條件,您也可以自行撰寫新的測試條件。這些測試條件會顯示在資料庫單元測試設計工具的 [測試條件] 窗格中。如需詳細資訊,請參閱 HOW TO:加入測試條件至資料庫單元測試設計工具

請參閱

概念

在資料庫單元測試中使用 T-SQL 判斷提示

資料庫單元測試中的指令碼

Database Edition 的用語概觀