在数据库单元测试中使用 T-SQL 断言

更新:2007 年 11 月

在数据库单元测试中,Transact-SQL (T-SQL) 测试脚本运行并返回结果。 有时,结果以结果集的形式返回。可以使用测试条件验证结果。例如,可以使用测试条件检查特定结果集中返回的行数,或验证特定测试的运行时间。有关测试条件的更多信息,请参见在数据库单元测试中使用测试条件

除了使用测试条件外,还可以使用 T-SQL 断言,断言在 T-SQL 脚本中为 RAISERROR 语句。在某些情况下,您可能更愿意使用 T-SQL 断言,而不是测试条件。

使用 T-SQL 断言

决定是使用 T-SQL 断言还是测试条件验证数据之前,应考虑以下几点。

  • 性能。与先将数据移到客户端计算机再进行本地操作相比,在服务器上运行 T-SQL 断言的速度要更快。

  • 熟悉的语言。根据目前的专业知识,您可能更愿意使用特定语言,从而选择 T-SQL 断言、C# 或 Visual Basic 测试条件。

  • 复杂验证。某些情况下,可以生成比仅使用 C# 或 Visual Basic 更复杂的测试验证,并在客户端上验证测试。

  • 旧式验证库。如果已有执行验证的代码,则可以将其用于数据库单元测试,而不使用测试条件。

RAISERROR 语句

通过在 T-SQL 脚本中使用 RAISERROR 语句,可以在服务器上直接使用 T-SQL 断言。其语法为:

**RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)**

其中:

@ErrorMessage 是任何用户定义的错误信息。可以使用与 printf_s 函数类似的方法设置此信息字符串的格式。

@ErrorSeverity 是用户定义的严重级别 (0 – 18)。

说明:

严重级别值“0”和“10”不会导致数据库单元测试失败。可以使用 0 - 18 范围内的任何其他值使测试失败。

@ErrorState 是 1 – 127 范围内的任意整数。可以使用此整数区分节点中不同位置引发的单个错误的发生情况。

有关更多信息,请参见“SQL Server Books Online”(《SQL Server 联机丛书》)中的“RAISERROR (Transact-SQL)”(https://go.microsoft.com/fwlink/?LinkId=66014)。主题 如何:编写在单个事务范围内运行的数据库单元测试 中提供了在数据库单元测试中使用 RAISERROR 的示例。

请参见

任务

如何:打开数据库单元测试以进行编辑

概念

在数据库单元测试中使用测试条件

Database Edition 术语概述

其他资源

数据库单元测试概述