技术开发 频道

SQL server数据库存储过程测试方法

  在使用游标之前,必须先打开游标。然后,如果想要遍历整个数据库表,则必须通过fetch next语句预读取数据库表的第一行: 

open tCursor

  
fetch next

  
from tCursor

  
into @caseID,@input,@expected

  对第一行进行预读取是为了对下面的循环进行控制,使用变量@@fetch_status来控制用于读取的这个循环,这个变量表示最近一次fetch操作的状态。如果fetch操作成功,则@@fetch_status值为0 。如果值为-1或-2则意味fetch失败。因此可以像下面这样每次一行地遍历整个数据库表:

 while @@fetch_status = 0

  
begin

  ——运行测试用例

  
fetch next

  
from tCursor

  
into @caseID,@input,@expected

  
end

  在主循环内部,需要调用待测存储过程,并且把测试用例输入数据传给它。接下来取回返回值并打印pass或fail消息: 

exec @actual = dbEmployees.dbo.usp_StatusCode @input

  
if (@actual = @expected)

  
begin

  
set @resultLine = @caseID + ': Pass'

  
print @resultLine

  
end

  
else

  
begin

  
set @resultLine = @caseID + ': FAIL'

  
print @resultLine

  
end

  使用完一个SQL游标之后,必须要关闭这个游标并且调用deallocate命令把它作为一个资源进行释放:

 close tCursor

  
deallocate tCursor

  如果忘了对游标进行deallocate操作,下一次执行测试套件脚本需要声明游标的时候,脚本就会报错。

0
相关文章