更新:2007 年 11 月
在典型的数据库单元测试中,Transact-SQL (T-SQL) 测试脚本会运行并返回 ExecutionResult 类的一个实例。此类的实例包含数据集、执行时间以及受脚本影响的行。所有这些信息都在脚本执行过程中收集。这些结果可在 T-SQL 脚本中通过使用 RAISERROR 函数来计算,也可以通过使用测试条件来计算。Visual Studio Team System Database Edition 提供了一组预定义的测试条件,供您使用。
预定义的测试条件
下表列出了可以使用“数据库单元测试”设计器中的“测试条件”窗格来添加的预定义测试条件。
测试条件 |
测试条件说明 |
---|---|
空结果集 |
如果从 T-SQL 脚本返回的结果集不为空,则不成立。 |
执行时间 |
如果 T-SQL 测试脚本的执行时间长于预期时间,则不成立。默认的执行时间为 30 秒。 执行时间只适用于测试脚本测试,而不适用于预先测试脚本或后期测试脚本。 |
没有结论 |
总是产生结果为“没有结论”的测试。这是添加到每个测试的默认条件。包括该测试条件是为了指示尚未实施测试验证。添加了其他测试条件后,从测试中删除此测试条件。 |
非空结果集 |
如果结果集为空,则不成立。可将此测试条件或 EmptyResultSet 用于测试脚本中的 T-SQL @@RAISERROR 函数,以测试更新是否工作正常。例如,可以保存更新前的值,运行更新,比较更新后的值,如果未获得预期结果,则会引发错误。 |
行数 |
如果结果集不包含预期的行数,则不成立。 |
标量值 |
如果结果集中的特定值不等于指定值,则不成立。默认的“所需的值”为 null。 |
![]() |
---|
“执行时间”测试条件指定 T-SQL 测试脚本运行时必须遵循的时间限制。如果超过此时间限制,测试将会失败。测试结果还包括持续时间统计信息,它不同于“执行时间”测试条件。持续时间统计信息不仅包括执行时间,还包括两次连接数据库所需的时间;运行任何其他测试脚本(如预先测试脚本和后期测试脚本)的时间以及运行测试条件的时间。因此,即使持续时间比执行时间长,测试仍可通过。 报告的持续时间不包括用于数据生成和架构部署的时间,因为它们发生在运行测试之前。若要查看测试持续时间,请在“测试结果”窗口中选择一个测试运行,右击,然后选择“查看测试结果详细信息”。 |
可以通过使用数据库单元测试设计器的“测试条件”窗格向数据库单元测试添加测试条件。有关更多信息,请参见如何:向数据库单元测试中添加条件。
还可以直接编辑测试方法代码,以便添加更多功能。有关更多信息,请参见在 Visual Basic 或 Visual C# 中自定义数据库单元测试。例如,可通过添加 Assert 语句向测试方法添加功能。有关更多信息,请参见在数据库单元测试中使用 T-SQL 断言。
可扩展的测试条件
除了六个预定义的测试条件外,还可以编写自己的新测试条件。这些测试条件将显示在数据库单元测试设计器的“测试条件”窗格中。有关更多信息,请参见如何:向“数据库单元测试设计器”中添加测试条件。