许多基于Windows的系统都使用了SQL Server作为后台组件。待测程序(AUT:Application Under Test)或者待测系统(SUT:System Under Test)经常通过存储过程来访问数据库。对于这些应用场景,可以把SQL存储过程想象成应用程序的辅助函数。有两种基本的方法可以用来编写针对SQL存储过程的轻量级的自动化测试。
第一种方法是在原始的SQL环境中编写自动化测试代码,也就是说测试套件代码(harness code)用于T-SQL语言来编写的,并且在类似于查询分析器(QueryAnalyzer)或者Management Studio这样的程序里被执行。
第二种方法是在.NET环境下编写自动测试代码,测试套件代码是用C#或者其他.NET语言来编写的,并且在诸如命令行程序等常规的Windows环境下被执行。
此次介绍如何使用原始的SQL环境来测试SQL存储过程。
问题
如何创建SQL数据库以及表结构以用来保存测试用例的输入数据和测试结果。
设计
编写T-SQL脚本,创建一个数据库然后创建一些表用来保存测试用例的输入数据和测试结果。如果想通过SQL认证的方式连接到上一步创建的数据库,则要创建一个专用的SQL登录账号,然后在查询分析器里或者通过osql.exe运行T-SQL脚本。
方案
下面的脚本创建了一个叫dbTestCasesAndResults的数据库,它包括一个用于存储测试用例数据的表和一个胜于存储测试结果的表,以及一个专用的SQL登录账号,这个账号便于程序通过Windows认证或者SQL认证的方式连接数据库。下面来看代码。