如何检查嵌套存储过程是否在tsqlt中执行

时间:2018-05-24 09:25:20

标签: sql-server 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'返回

  

失败:(失败)预计会引发错误。

你有什么想法吗?

2 个答案:

答案 0 :(得分:0)

道歉,下面的代码确实有效,我在其他地方犯了错误。

答案 1 :(得分:0)

虽然如你所说,你的方法有效,但我建议你使用..._spyprocedurelog表。它允许您捕获多次执行以及每次传递的参数。如果您在某个时候将错误处理添加到外部过程,这仍然有效。

查看SpyProcedure documentation中的示例。