Я работал над созданием теста, чтобы использовать ExpectException для ошибки, возникающей во время выполнения хранимой процедуры, но тест никогда не проходил, как я ожидал. Итак, в рамках устранения неполадок я сделал очень простой хранимый процесс:
ALTER PROC testerror AS RAISERROR ('SomeError',16,1);
Затем я построил тест для этого:
ALTER PROCEDURE [uspTest].[test the test]
AS
BEGIN
EXEC testerror
--Assert
EXEC tSQLt.ExpectException @ExpectedMessagePattern = '%SomeError%',
@ExpectedSeverity = 16,
@ExpectedState = 1;
END;
Когда я запускаю это в tSQLt, тест завершается со следующим выводом:
Test Procedure: [SSISAdmin].[uspTest].[test the test] on SF5I-ETLTST01
[uspTest].[test the test] failed: (Error)
SomeError[16,1]{testerror,1}
Я также попытался передать NULL для Severity и State на основе примеров, которые были в документации для ExpectException, как показано ниже, но тест все равно не прошел:
EXEC tSQLt.ExpectException @ExpectedMessagePattern = '%SomeError%',
@ExpectedSeverity = NULL,
@ExpectedState = NULL;
Я предполагаю, что делаю что-то не так, но я не уверен, что, так как это похоже на очень упрощенный тест и сообщение об ошибке, которое возвращается.
Любая помощь будет оценена.