SQL存储过程测试(7)——当待测存储过程没有返回值时 如何判断测试结果是否通过

发表于:2009-11-16 14:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:igoone    来源:51Testing软件测试博客

  问题

  如何测试没有返回值的存储过程。

  设计

  调用待测存储过程,然后计算该存储过程影响的对象的聚合校验和。把计算出来的校验和与期望的校验和进行比较。

  方案

  例如,设想待测存储过程要从tb1Employees表中删除特定的雇员记录:

create procedure usp_DeleteEmployee

    @empID char(3)

as

    delete from tb1Employees where empID = @empID

  要测试这个存储过程,可以先调用它,计算tb1Employees表的校验和,然后把计算结果与期望值进行比较:

请declare @input char(3)

declare @expected int

declare @actual int

set @input = 'e22'

set @expected = 15087775

exec dbEmployees.dbo.usp_DeleteEmployee 'e22'

select @actual = checksum_agg(checksum(*)) from dbEmployees.dbo.tb1.tb1Epmloyees

if(@actual = @expected)

    print 'Pass'

else

    print 'FAIL'

  如果存储过程没有返回值,那它肯定要实施一些操作,比如从数据库里面删除一些数据,要测试这样的存储过程,需要比较存储过程所操作的对象的实际值和期望值。这种情况与测试返回SQL行集对象的存储过程非常类似。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号