使用单元测试验证数据库代码

您可以使用数据库单元测试为数据库建立一个基线状态,然后验证您对数据库对象进行的任何后续更改。 必须先创建“数据库项目”才能建立基线状态。 然后您可以创建一个测试项目,并编写一组用来测试数据库对象的 Transact-SQL 测试。 通过使用这些测试,您可以在将对象签入版本控制之前,在“独立开发环境”中验证这些对象是否正常运行。

可以创建用于验证对任何数据库对象所做更改的测试。 此外,还可以自动生成用于测试数据库函数、触发器和存储过程的 Transact-SQL 代码的存根。

提示

您可以在不打开数据库项目的情况下创建和运行数据库单元测试。 然而,如果要自动生成测试脚本来测试您项目中的特定数据库对象,则必须打开包含要测试对象的数据库项目。

在您或您的团队成员更改数据库“架构”时,可以使用这些测试来验证这些更改是否破坏了现有功能。 您创建数据库单元测试来补充软件开发人员所创建的软件单元测试。 必须完成这两组测试以验证应用程序的总体行为。

单元测试可以验证过程是否按照预期成功以及是否按照预期失败。 测试相应的失败是否发生也称为否定性测试。

重要说明重要事项

在 Visual Studio 高级专业版和 Visual Studio 旗舰版中可以创建、修改和运行数据库单元测试。 在 Visual Studio 2010 专业版 中,可以运行数据库单元测试,但无法在设计器中创建或修改测试。

常规任务

在下表中,可以找到支持此方案的常规任务的说明,以及指向有关如何成功完成这些任务的更多信息的链接。

常规任务

支持内容

进行动手练习:可以按照介绍性演练操作,熟悉如何创建和运行简单的数据库单元测试。 本演练包括一个否定性数据库单元测试的示例。

用测试数据填充数据库:在针对数据库对象运行测试之前,数据库中必须有数据。 创建测试数据的最常用方法是使用一个或多个数据生成器。 还可以使用“后期部署脚本”中的引用数据填充数据库,也可以将数据库中的数据与另一个数据库中的数据同步。

定义数据库单元测试:必须在数据库项目中创建数据库单元测试。 您可以为该项目配置设置,并为每个测试定义一个或多个“测试条件”。

运行数据库单元测试:定义一个或多个单元测试后,您可以运行这些测试、调试任何问题以及检查测试结果。

管理测试组:如果多个测试通常要同时运行,可以将它们组织为多个组。 仍然支持测试列表,但对于新测试组,应考虑测试类别。 例如,您可能会为针对特定架构中的触发器或所有对象的测试创建一个测试类别。

将测试项目和测试签入版本控制:在您运行测试并验证这些测试是否正常运行后,应将测试项目和所有关联文件签入版本控制,以便您的所有团队成员都可以运行这些测试。

定义自定义测试条件:在必须测试默认测试条件组未涵盖的行为时,可以创建自定义测试条件。 必须将这些条件分发给团队中要运行使用新条件的测试的所有成员。

更新现有单元测试:如果您有一些使用早期版本的 Visual Studio 创建的单元测试,则必须进行升级才能使用此版本成功生成和运行。

注意注意
如果打开的方案包含来自 Visual Studio 早期版本的数据库项目和数据库单元测试项目,系统将提示您升级这些项目。如果打开的方案仅包含数据库单元测试项目,则必须手动升级该项目。

排除问题:可以详细了解如何排除数据库单元测试的常见问题。

相关方案