Как проверить, была ли вложенная хранимая процедура выполнена в tsqlt - PullRequest
0 голосов
/ 24 мая 2018

У меня есть хранимая процедура, которая условно выполняет вложенную хранимую процедуру.

В модульном тесте мне нужно проверить, была ли выполнена эта вложенная хранимая процедура.

Я пытался 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 голосов
/ 24 мая 2018

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

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

0 голосов
/ 24 мая 2018

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

...