如何检查嵌套存储过程是否在tsqlt中执行
How to check if nested stored procedure was executed in tsqlt
我有条件执行嵌套存储过程的存储过程。
在单元测试中,我需要检查是否执行了这个嵌套存储过程。
我试过 tSQLt.SpyProcedure
,但它似乎没有按我想要的方式工作。
我单元测试的内容
-- Assembly
exec tSQLt.SpyProcedure 'procedureName', 'raiserror(''procedureName was fired'',16,1)'
-- Assert
exec tSQLt.ExpectException 'procedureName was fired'
-- Action
exec masterProcedureName -- triggers procedureName
但是tsqlt.run 'unitestName'
returns
failed: (Failure) Expected an error to be raised.
你有什么想法吗?
抱歉,以下代码确实有效,我在其他地方出错了。
尽管如您所述,您的方法有效,但我建议您改用 ..._spyprocedurelog
table。它允许您捕获多次执行以及每次传递的参数。如果您在某个时候向外部过程添加错误处理,这仍然有效。
查看 SpyProcedure documentation 中的示例。
我有条件执行嵌套存储过程的存储过程。
在单元测试中,我需要检查是否执行了这个嵌套存储过程。
我试过 tSQLt.SpyProcedure
,但它似乎没有按我想要的方式工作。
我单元测试的内容
-- Assembly
exec tSQLt.SpyProcedure 'procedureName', 'raiserror(''procedureName was fired'',16,1)'
-- Assert
exec tSQLt.ExpectException 'procedureName was fired'
-- Action
exec masterProcedureName -- triggers procedureName
但是tsqlt.run 'unitestName'
returns
failed: (Failure) Expected an error to be raised.
你有什么想法吗?
抱歉,以下代码确实有效,我在其他地方出错了。
尽管如您所述,您的方法有效,但我建议您改用 ..._spyprocedurelog
table。它允许您捕获多次执行以及每次传递的参数。如果您在某个时候向外部过程添加错误处理,这仍然有效。
查看 SpyProcedure documentation 中的示例。