在数据库项目中包括单元测试,以验证对数据库对象所做的更改不会破坏现有功能。 以下过程说明如何为任何数据库对象创建 SQL Server 单元测试。 SQL Server Data Tools 包括对数据库函数、触发器和存储过程的一些额外支持。 有关详细信息,请参阅 如何:为函数、触发器和存储过程创建 SQL Server 单元测试。
使用第一个过程创建 SQL Server 单元测试时,如果不存在测试项目,系统会自动创建测试项目。 如果测试项目已存在,可以选择将新测试添加到其中一个项目,也可以创建新的测试项目。 有关测试项目的详细信息,请参阅 如何:为 SQL Server 数据库单元测试创建测试项目。
有两个选项可用于创建 SQL Server 单元测试:
在新测试类中创建新的 SQL Server 单元测试。
给定测试类中的所有 SQL Server 单元测试都使用相同的 TestInitialize 和 TestCleanup 脚本。 如果希望单元测试使用与其他单元测试不同的 TestInitialize 和 TestCleanup 脚本,请创建新的测试类。 有关详细信息,请参阅 SQL Server 单元测试中的脚本。
在现有测试类中创建新的 SQL Server 单元测试。
如果你的单元测试使用与类中的其他单元测试相同的 TestInitialize 和 TestCleanup 脚本,请选择此选项。
在新测试类中创建 SQL Server 单元测试
在 “测试 ”菜单上,选择“ 新建测试”。
此时会显示“ 添加新测试 ”对话框。
在 “模板”下,选择 “SQL Server 单元测试”。
在 “测试名称”下,输入测试的名称。
在 “添加到测试项目”下,选择要向其中添加此测试的现有测试项目。 如果不存在测试项目,或者想要创建新的测试项目,请选择 “创建新 <语言> 测试项目”。
选择“确定”。
如果测试项目为新项目,将显示 “新建测试项目 ”对话框。 将项目命名,然后选择“ 确定”。
如果测试项目为新项目或尚未配置,将显示 “SQL Server 测试配置 <ProjectName> ”对话框。 此对话框允许你为测试项目配置以下信息:
用于执行测试的数据库连接。
用于验证测试结果、部署数据库和生成数据的数据库连接。
在运行单元测试之前,将数据库项目及与特定项目配置相关的任何架构更改自动部署。
有关详细信息,请参阅 如何:配置 SQL Server 单元测试执行。
提供项目配置信息,然后选择“ 确定”。
-或-
选择 “取消 ”以创建单元测试,而无需配置测试项目。
空白测试将显示在 SQL Server 单元 TestDesigner 中。 根据为创建测试项目指定的语言,Visual Basic 或 C# 源代码文件将添加到测试项目中。 此文件包含 SQL Server Data Tools 为创建的单元测试生成的 SQL Server 单元测试类。 此测试类可以包含一个或多个单元测试,可以通过 SQL Server 单元测试设计器或通过代码作为测试类中的新测试方法进行添加。
还可以通过以下方式添加更多测试:
- 在 解决方案资源管理器中右键单击测试项目,选择“ 添加”、“ 新建测试”,然后选择 “SQL Server 单元测试”。
- 在 SQL Server 对象资源管理器中,选择“ 创建单元测试”。
在 解决方案资源管理器中选择此文件时,该文件默认显示在 SQL Server 单元测试设计器中。 若要查看代码或对其进行自定义以向单元测试添加更多功能,请选择文件、右键单击并选择 “查看代码”。
在现有测试类中创建 SQL Server 单元测试
在 SQL Server 单元测试设计器中打开现有的 SQL Server 单元测试类。 可以通过在解决方案资源管理器中双击单元测试源代码文件来访问 SQL Server 单元测试设计器。
选择导航栏中的加号(+)以显示“ 指定单元测试名称 ”对话框。
键入名称并选择“ 确定”。
新的 SQL Server 单元测试在导航栏的下拉列表中可用。 它还被添加为测试类中的一个新测试方法。 若要查看代码中的测试方法,请选择类文件,右键单击并选择 “查看代码”。 当前测试类文件的名称显示在 SQL Server 单元测试设计器顶部的选项卡上。
配置测试项目并创建单元测试后,后续步骤如下:
- 添加 Transact-SQL 测试脚本。
- 定义测试前和测试后的操作。
- 添加测试条件或其他断言语句以验证脚本结果。
注释
无结论性测试条件是添加到每个测试的默认条件。 包括此测试条件以指示尚未实施测试验证。 添加其他测试条件后,请从测试中删除此测试条件。 有关详细信息,请参阅 “如何:向数据库单元测试添加测试条件”。