Как проверить, была ли вложенная хранимая процедура выполнена в 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' возвращается

fail: (Failure) Ожидается, что возникнет ошибка.

Есть ли у вас какие-либо идеи?

2 ответа

Решение

Хотя, как вы упомянули, ваш подход работает, я предлагаю вам использовать ..._spyprocedurelog стол вместо. Это позволит вам отследить несколько выполнений, а также параметры, передаваемые каждый раз. И если в какой-то момент вы добавите обработку ошибок во внешнюю процедуру, это все равно будет работать.

Посмотрите пример в документации SpyProcedure.

Мои извинения, следующий код работает, у меня была ошибка где-то еще.

Другие вопросы по тегам