【问题标题】:How to check if nested stored procedure was executed in tsqlt如何检查嵌套存储过程是否在 tsqlt 中执行
【发布时间】:2018-05-24 09:25:19
【问题描述】:

我有有条件地执行嵌套存储过程的存储过程。

在单元测试中,我需要检查这个嵌套存储过程是否被执行。

我试过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' 返回

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

你有什么想法吗?

【问题讨论】:

    标签: sql-server tsqlt


    【解决方案1】:

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

    查看SpyProcedure documentation 中的示例。

    【讨论】:

    • 谢谢你,我不知道spyprocedurelog table。
    【解决方案2】:

    抱歉,以下代码确实有效,我在其他地方有错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      相关资源
      最近更新 更多