技术开发 频道

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

  注解

  除了打印pass/fail信息之外,还可以把测试结果插入到SQL数据表里:

 ——declare @actual int,@whenRun datetime

  ——
set @whenRun = getdate()

  
while @@fetch_status = 0

  
begin

  
exec @actual = dbEmployees.dbo.usp_StatusCode @input

  
if (@actual = @expected)

  
insert into dbTestCasesAndResults.dbo.tblResults values (@caseID,'Pass',@whenRun)

  
else

  
insert into dbTestCasesAndResults.dbo.tblResults values (@caseID,'FAIL',@whenRun)

  
fetch next

  
from tCursor

  
into @caseID,@input,@expected

  
end

  如果不采用通过待测存储过程以及硬编码的语句来生成底层数据库,也可以使用BULK INSERT语句:

 ——为dbEmployees填充数据

  
truncate table dbEmployees.dbo.tblEmployees

  
bulk insert dbEmployees.dbo.tblEmployees

  
from 'C:\somewhere\richTestbedData.dat'

  
with (formatfile = 'C:\somewhere\richTestbedDate.fmt')

  使用这种方法的好处是,可以让测试套件模块化程度更高并且更为灵活,但是它也有不好的一面:它在这个原本已经有很多对象的测试套件系统里又引入了一个文件,从而增加了复杂性。

0
相关文章