ストアド プロシージャを呼び出すテストがあります。ストアド プロシージャは、raiserror を使用して、提供された入力を拒否することを期待しています。私の tSQLt テストの関連部分は次のとおりです。
EXEC tSQLt.ExpectException @ExpectedMessagePattern = '%複数のサブカテゴリ%';
EXEC usp_add_rfx_rfx 多くのパラメータがここに
tSQLt からのテスト結果は、usp_add_rfx_rfx sp の raiserror の重大度によって異なります。
重大度が 12 以上の場合、テストは次のメッセージで失敗します。
[test_RFX_configuration].[test_multiple_categories_and_lots] に失敗しました: (エラー) EXECUTE 後のトランザクション数は、BEGIN ステートメントと COMMIT ステートメントの数が一致していないことを示しています。前のカウント = 1、現在のカウント = 0.[16,2]{test_multiple_categories_and_lots,0} (ROLLBACK ERROR もありました --> ROLLBACK TRANSACTION 要求には対応する BEGIN TRANSACTION がありません。{Private_RunTest,149})
重大度が低い場合、テストは次のように失敗します。
[test_RFX_configuration].[test_multiple_categories_and_lots] failed: (Failure) エラーが発生することが予想されます。
私は問題をグーグルで検索し、見つけた多くのことを試しました-TRY-CATCHなどを使用しましたが、喜びはありませんでした。何か案は?