Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В модульном тесте SQL Server выполняется тестовый скрипт «Transact-SQL» и возвращает результат. Иногда результаты возвращаются в виде набора результатов. Результаты можно проверить с помощью условий тестирования. Например, можно использовать условие теста, чтобы проверить, сколько строк было возвращено в определенном результирующем наборе или проверить, сколько времени потребовалось для выполнения определенного теста. Дополнительные сведения об условиях тестирования см. в разделе "Использование условий теста" в модульных тестах SQL Server.
Вместо использования условий тестирования можно также использовать Transact-SQL утверждения, которые являются THROW или RAISERROR операторами в скрипте Transact-SQL. В определенных обстоятельствах можно использовать утверждение Transact-SQL вместо условия теста.
Использование утверждений Transact-SQL
Перед проверкой данных следует рассмотреть следующие моменты, прежде чем выполнять проверку данных с помощью Transact-SQL утверждений или с помощью условий тестирования.
Качество работы. Это быстрее, чтобы запустить утверждение Transact-SQL на сервере, чем сначала переместить данные на клиентский компьютер и управлять им локально.
Знакомство с языком. Вы можете предпочесть конкретный язык на основе текущего опыта и поэтому выбрать Transact-SQL утверждения или условия тестирования C# или Visual Basic.
Сложная проверка. В некоторых случаях можно создавать более сложные тесты в C# или Visual Basic и проверять тесты на клиенте.
Простота. Часто проще использовать предварительно определенное условие теста, чем для записи эквивалентного скрипта в Transact-SQL.
Устаревшие библиотеки проверки. Если у вас уже есть код, выполняющий проверку, его можно использовать в модульном тесте SQL Server вместо использования условий тестирования.
Пометить методы модульного теста с ожидаемым исключением
Чтобы пометить метод модульного теста SQL Server ожидаемыми исключениями, добавьте следующий атрибут:
<ExpectedSqlException(MessageNumber=nnnnn, Severity=x, MatchFirstError=false, State=y)> _
[ExpectedSqlException(MessageNumber=nnnnn, Severity=x, MatchFirstError=false, State=y)]
Where:
- nnnnn — это число ожидаемого сообщения, например 14025
- X — это серьезность ожидаемого исключения
- y — это состояние ожидаемого исключения
Все не указанные параметры игнорируются. Эти параметры передаются в инструкцию RAISERROR в коде базы данных. Если указать MatchFirstError = true, атрибут будет соответствовать любому из SqlErrors в исключении. Поведение по умолчанию (MatchFirstError = true) соответствует только первой ошибке, которая возникает.
Пример использования ожидаемых исключений и отрицательного модульного теста SQL Server см. в пошаговом руководстве. Создание и запуск модульного теста SQL Server.
Инструкция RAISERROR
Замечание
Используйте THROW вместо RAISERROR.
RAISERROR теперь не рекомендуется.
Вы можете напрямую использовать утверждения Transact-SQL на сервере с помощью RAISERROR инструкции в скрипте Transact-SQL. Синтаксис:
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)
where:
-
@ErrorMessage— это любое сообщение об ошибке, определяемое пользователем. Эту строку сообщения можно форматировать аналогичноprintf_sфункции. -
@ErrorSeverity— это определяемый пользователем уровень серьезности от 0 до 18.
Замечание
Значения "0" и "10" для уровня серьезности не приводят к сбою модульного теста SQL Server. Можно использовать любое другое значение в диапазоне 0 – 18, чтобы вызвать сбой теста.
@ErrorState — произвольное целое число от 1 до 127. Это целое число можно использовать для того, чтобы различать случаи одной ошибки, возникающей в разных местах кода.
Дополнительные сведения см. в разделе RAISERROR. Пример использования RAISERROR в модульном тесте SQL Server приведен в статье "Практическое руководство. Написание модульного теста SQL Server, который выполняется в пределах области одной транзакции".