Utilisation d'assertions T-SQL dans les tests unitaires de base de données
Mise à jour : novembre 2007
Dans un test unitaire de base de données, un script de test Transact-SQL (T-SQL) exécute et retourne un résultat. Parfois, les résultats sont retournés comme un jeu de résultats. Vous pouvez valider des résultats à l'aide de conditions de test. Par exemple, vous pouvez utiliser une condition de test pour vérifier le nombre de lignes retournées dans un jeu de résultats spécifique ou la durée d'exécution d'un test particulier. Pour plus d'informations sur les conditions de test, consultez Utilisation de conditions de test dans des tests unitaires de base de données.
Au lieu d'utiliser des conditions de test, vous pouvez utiliser des assertions T-SQL qui sont des instructions RAISERROR dans un script T-SQL. Dans certains cas, il est possible que vous préfériez utiliser une assertion T-SQL au lieu d'une condition de test.
Utilisation d'assertions T-SQL
Vous devez considérer les points suivants avant de décider de valider des données en utilisant des assertions T-SQL ou des conditions de test.
Performances. Il est plus rapide d'exécuter une assertion T-SQL sur le serveur que de déplacer d'abord les données vers un ordinateur client et de les manipuler en local.
Familiarité avec le langage. Vous pouvez préférer un langage particulier selon votre compétence actuelle et, par conséquent, choisir des assertions T-SQL ou des conditions de test C# ou Visual Basic.
Validation complexe. Dans certaines instances, vous pouvez générer une validation de test plus complexe qu'en C# ou Visual Basic et valider vos tests sur le client.
Bibliothèques de validation héritées. Si vous avez déjà un code qui effectue la validation, vous pouvez l'utiliser dans un test unitaire de base de données au lieu d'utiliser des conditions de test.
Instruction RAISERROR
Vous pouvez utiliser directement des assertions T-SQL sur le serveur en utilisant l'instruction RAISERROR dans votre script T-SQL. La syntaxe est la suivante :
**RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)**
où :
@ErrorMessage est tout message d'erreur défini par l'utilisateur. Vous pouvez mettre en forme cette chaîne de message de façon identique à la fonction printf_s.
@ErrorSeverity est un niveau de gravité défini par l'utilisateur entre 0 et 18.
Remarque : |
---|
Les valeurs 0 et 10 pour le niveau de gravité ne provoquent pas l'échec du test unitaire de base de données. Vous pouvez utiliser toute autre valeur dans la plage 0 à 18 pour provoquer l'échec du test. |
@ErrorState est un entier arbitraire situé entre 1 et 127. Vous pouvez utiliser cet entier pour distinguer les occurrences d'une simple erreur qui est déclenchée à des emplacements différents dans le code.
Pour plus d'informations, consultez « RAISERROR (Transact-SQL) » (https://go.microsoft.com/fwlink/?LinkId=66014) dans la documentation en ligne de SQL Server. Un exemple d'utilisation de RAISERROR dans un test unitaire de base de données est fourni dans la rubrique Comment : écrire un test unitaire de base de données qui s'exécute dans la portée d'une transaction unique.
Voir aussi
Tâches
Comment : ouvrir un test unitaire de base de données à modifier
Concepts
Utilisation de conditions de test dans des tests unitaires de base de données
Vue d'ensemble de la terminologie de Database Edition