代码之家  ›  专栏  ›  技术社区  ›  Muflix

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

  •  0
  • Muflix  · 技术社区  · 6 年前

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

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

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

    failed:(Failure)预期会引发错误。

    你知道吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Sebastian Meine T I    6 年前

    正如你提到的,你的方法是有效的,我建议你使用 ..._spyprocedurelog 而不是桌子。它允许您捕获多次执行以及每次传递的参数。如果您在某个时刻将错误处理添加到外部过程中,这仍然有效。

    看看下面的例子 SpyProcedure documentation .

        2
  •  0
  •   Muflix    6 年前

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