Partager via


Procédure pas à pas : création et exécution d'un test unitaire de base de données

Mise à jour : novembre 2007

Dans cette procédure pas à pas, vous créez un test unitaire de base de données qui teste un script Transact-SQL (T-SQL) simple. Avant de créer un test unitaire de base de données, vous devez posséder ou créer un projet de base de données pour la base de données que vous souhaitez tester. De plus, la base de données doit contenir des données afin que le test puisse retourner des résultats significatifs.

Dans la première partie de cette procédure pas à pas, vous créez un projet de base de données et importez le schéma de la base de données Northwind. Après avoir créé le projet, vous créez un plan de génération de données pour générer des données pour une colonne dans la table Orders. Vous créez ensuite un projet pour contenir le test, vous écrivez le test lui-même, et vous exécutez le test pour vérifier si le script fonctionne comme prévu.

Composants requis

Pour exécuter cette procédure pas à pas, vous devez être en mesure de vous connecter à un serveur de base de données sur lequel la base de données Northwind est installée.

Pour créer un projet de base de données

  1. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.

    La boîte de dialogue Nouveau projet s'affiche.

  2. Dans Types de projets, développez le nœud Projets de base de données, puis cliquez sur Microsoft SQL Server.

  3. Dans la liste Modèles, cliquez sur Assistant SQL Server 2000.

  4. Dans la zone Nom, tapez TestNorthwind.

  5. Dans la liste Solution, cliquez sur Créer une nouvelle solution si cette option n'est pas déjà mise en surbrillance.

  6. Activez la case à cocher Créer le répertoire pour la solution si elle ne l'est pas déjà.

  7. Désactivez la case à cocher Ajouter au contrôle de code source si elle ne l'est pas déjà, puis cliquez sur OK.

    L'Assistant Nouveau projet de base de données s'affiche. Utilisez ensuite l'Assistant pour configurer votre projet de base de données et importer le schéma de base de données initial.

Pour configurer votre projet et importer un schéma de base de données

  1. Cliquez sur Suivante après avoir lu la page d'accueil.

  2. Dans la mesure où la base de données Northwind contient un seul schéma, cliquez sur Organiser mon projet par type d'objet.

    Remarque importante :

    Vous ne pouvez pas modifier l'organisation d'un projet après l'avoir créé.

  3. Dans Spécifier le schéma par défaut à utiliser pour les objets que vous avez créés dans votre projet de base de données, acceptez la valeur par défaut de dbo.

  4. Sur la page Définir les options de la base de données, acceptez les paramètres par défaut, puis cliquez sur Suivant.

    Remarque :

    Vous pouvez modifier ces options après la création du projet. Pour plus d'informations, consultez Comment : configurer des projets de base de données pour la génération et le déploiement.

  5. Sur la page Importer un schéma de base de données, activez la case à cocher Importer le schéma existant.

  6. Dans Connexion de base de données source, cliquez sur la connexion qui correspond au serveur et à la base de données qui contiennent votre base de données Northwind. Si la connexion n'existe pas déjà, cliquez sur Nouvelle connexion pour la créer. Si vous ne spécifiez pas de connexion, le projet de base de données sera créé, mais aucun schéma ne sera importé.

    Remarque :

    Vous pouvez importer un schéma de base de données ultérieurement, si le projet de base de données ne contient pas déjà d'objets de base de données. Pour plus d'informations, consultez Comment : importer un schéma de base de données.

  7. Acceptez les options d'importation par défaut, puis cliquez sur Suivant.

  8. Sur la page Configurer la génération/le déploiement, dans Connexion cible, cliquez sur le bouton Parcourir, puis spécifiez une connexion au serveur de base de données sur lequel vous voulez créer votre environnement de développement isolé.

    Pour créer une nouvelle instance locale de la base de données, dans la boîte de dialogue Propriétés de connexion, tapez (local) sous Nom du serveur, puis cliquez sur Utiliser l'authentification Windows. Cliquez sur OK.

  9. Dans Nom de la base de données cible, tapez TestNorthwind si ce n'est pas déjà spécifié.

  10. Dans Valeur par défaut du classement de déploiement, cliquez sur Utiliser le classement du serveur.

    Cette étape configure la base de données cible pour qu'elle utilise le classement de projet de base de données.

  11. Désactivez la case à cocher Bloquer le déploiement incrémentiel si une perte de données peut se produire.

    Étant donné que l'environnement de développement isolé contiendra uniquement des données de test générées, vous pouvez autoriser la perte de données.

  12. Cliquez sur Terminer pour créer le projet de base de données et importer la base de données.

Pour examiner le projet résultant

  1. Dans l'Explorateur de solutions, développez le nœud TestNorthwind, puis développez le nœud enfant Objets de schéma.

  2. Explorez les sous-nœuds qui se trouvent sous le nœud Objets de schéma dans la hiérarchie.

    L'Explorateur de solutions contient les fichiers qui définissent les objets se trouvant dans le schéma de la base de données à partir duquel vous les avez importés.

  3. Dans le menu Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue Schéma.

  4. Dans la vue Schéma, développez le nœud TestNorthwind.

  5. Explorez les sous-nœuds qui se trouvent sous le nœud TestNorthwind dans la hiérarchie.

    La vue Schéma contient les objets définis dans les fichiers qui apparaissent dans l'Explorateur de solutions.

  6. Dans l'Explorateur de solutions, cliquez sur le nœud TestNorthwind.

  7. Dans le menu Projet, cliquez sur Propriétés TestNorthwind.

  8. Sur la page Propriétés, cliquez sur l'onglet Générer.

  9. Dans Nom de la base de données cible, tapez TestNorthwind.

  10. Dans le menu Fichier, cliquez sur Enregistrer les éléments sélectionnés.

  11. Cliquez sur le projet TestNorthwind dans l'Explorateur de solutions.

  12. Dans le menu Générer, cliquez sur Générer la solution.

  13. Dans le menu Générer, cliquez sur Déployer TestNorthwind.

    Remarque :

    Chaque développeur spécifiera la chaîne de connexion au serveur de base de données sur lequel il veut héberger sa copie de la base de données.

Ensuite, vous spécifiez un plan de génération de données pour remplir la base de données de développement isolé avec des données de test réalistes.

Pour créer un plan de génération de données

  1. Dans l'Explorateur de solutions, développez le nœud TestNorthwind, puis cliquez sur le dossier Plans de génération de données.

  2. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

    La boîte de dialogue Ajouter un nouvel élément s'affiche alors.

  3. Dans la liste Modèles, cliquez sur Plan de génération de données.

  4. Dans la zone Nom, tapez TestNW.dgen, puis cliquez sur Ajouter.

    Un plan de génération de données nommé TestNW est ajouté au projet de base de données et ouvert dans l'éditeur. Le schéma de base de données est importé dans le plan de génération de données. Vous modifiez ensuite ce plan pour générer des données de test plus réalistes.

Pour définir le plan de génération de données pour la table Orders

  1. Cliquez sur dbo.Orders dans le plan de génération de données.

  2. Dans le menu Données, pointez sur Générateur de données, puis cliquez sur Détails de la colonne.

    La fenêtre Détails de la colonne qui s'affiche présente les colonnes de la table Orders, leurs types de données, le générateur par défaut qui est associé à chaque colonne et le résultat du générateur.

  3. Dans le volet Détails de la colonne, cliquez sur ShipCity, puis affectez la valeur Générateur lié aux données au champ Générateur.

    Cette étape indique que vous voulez remplir cette colonne avec les résultats d'une requête.

  4. Dans le menu Affichage, cliquez sur Propriétés.

  5. Dans la fenêtre Propriétés, passez à la section Générateur. Dans la propriété Connection Information, cliquez sur la connexion qui correspond à la base de données à partir de laquelle vous avez importé le schéma de base de données dans une procédure antérieure.

    Cette étape spécifie la connexion de base de données que vous voulez utiliser pour exécuter la requête qui générera des données pour cette colonne.

  6. Dans la section Générateur de la fenêtre Propriétés, dans la propriété Query, affectez SELECT * FROM Orders à la chaîne de requête.

    Remarque :

    Ne modifiez pas la valeur de départ. Cette valeur est requise pour générer des données spécifiques de la base de données Northwind qui seront utilisées ultérieurement dans cette procédure pas à pas.

  7. Dans le volet Détails de la colonne, dans le champ Sortie du générateur pour ShipCity, cliquez sur [OutputTable1].[ShipCity].

    Cette étape sélectionne la colonne du jeu de résultats que vous voulez associer à cette colonne.

  8. Enregistrez le plan de génération de données.

    L'étape suivante consiste à créer un test unitaire de base de données qui utilise ces données.

Création d'un test unitaire de base de données

Pour créer un test unitaire de base de données

  1. Dans Visual Studio, ouvrez le menu Test et cliquez sur Nouveau test.

    La boîte de dialogue Ajouter un nouveau test s'affiche.

  2. Cliquez sur Test unitaire de base de données.

  3. Dans Nom du test, tapez SampleUnitTest.

  4. Sous Ajouter au projet de test, cliquez sur Créer un nouveau projet de test Visual C#, puis sur OK.

    La boîte de dialogue Nouveau projet de test s'affiche.

  5. Conservez le nom par défaut pour le nouveau projet de test et cliquez sur Créer.

    Le nouveau projet de test est ajouté à la solution TestNorthwind existante. Le projet comprend un fichier nommé SampleUnitTest.cs qui contient le code d'une nouvelle classe de test pour vos tests unitaires de base de données. La classe de test est appelée SampleUnitTest et contient une nouvelle méthode de test unitaire nommée DatabaseTest1 par défaut. Vous pouvez conserver le nom de cette méthode de test ou le remplacer par un nom plus explicite, et vous pouvez la personnaliser pour retourner des résultats de tests ciblés. Pour plus d'informations, consultez Comment : ouvrir un test unitaire de base de données à modifier.

    La boîte de dialogue Configuration du projet 'ProjetTest' s'affiche.

  6. Sous Connexions de base de données, sélectionnez la base de données TestNorthwind dans la première liste déroulante. Son nom apparaît au format <Serveur>TestNorthwind.dbo. Si ce nom apparaît, cliquez dessus et passez à l'étape 9

  7. Si la base de données TestNorthwind n'apparaît pas, cliquez sur Nouvelle connexion.

    La boîte de dialogue Propriétés de connexion s'affiche.

  8. Dans la boîte de dialogue Propriétés de connexion, identifiez le serveur sur lequel la base de données TestNorthwind est installée et cliquez sur le type d'authentification à utiliser. Sous Sélectionner ou entrer un nom de base de données, tapez TestNorthwind et cliquez sur OK pour fermer la boîte de dialogue Propriétés de connexion.

    Remarque :

    Après avoir établi une connexion à une base de données, son nom apparaît dans la boîte de dialogue Configuration du projet 'ProjetTest' sous Connexions de base de données.

  9. Dans la boîte de dialogue Configuration du projet 'ProjetTest', activez la case à cocher Utiliser une connexion de données secondaire pour valider les tests unitaires.

    Remarque :

    Vous venez d'affecter la même valeur aux deux chaînes de connexion. Dans la plupart des cas, vous utilisez une chaîne de connexion qui a des autorisations plus élevées pour la validation que pour l'exécution. Pour plus d'informations, consultez Vue d'ensemble des chaînes de connexion et des autorisations.

  10. Activez la case à cocher Générer les données de test avant l'exécution des tests unitaires.

  11. Dans la liste déroulante, cliquez sur le plan de génération de données TestNW et sur OK. Ce plan de génération de données est appliqué à la base de données TestNorthwind lorsque vous exécutez le test unitaire.

    Remarque :

    Vous pouvez également utiliser cette boîte de dialogue pour configurer le déploiement de schéma. Pour plus d'informations, consultez Comment : configurer l'exécution de tests unitaires de base de données.

    Lorsque la boîte de dialogue Configuration du projet 'ProjetTest' se ferme, le Concepteur de test unitaire de base de données s'affiche.

    Pour chaque condition de test que vous ajoutez, du code C# ou Visual Basic est créé dans un fichier de code source.

  12. Générez le projet de test en cliquant dessus avec le bouton droit dans l'Explorateur de solutions et en cliquant sur Générer.

  13. Ajoutez un autre test unitaire en cliquant sur Ajouter un test (+) dans la barre de navigation du Concepteur de test unitaire de base de données.

    La boîte de dialogue Indiquer un nom pour un test de base de données apparaît.

  14. Conservez le nom par défaut pour la méthode de test, puis cliquez sur OK. Un autre test unitaire est ajouté au projet existant. Ce test unitaire est créé comme une nouvelle méthode de test à l'intérieur de la classe SampleUnitTest que vous avez précédemment créée.

    Vous êtes maintenant prêt à écrire votre logique de test réelle.

Pour écrire le test unitaire de base de données

  1. Dans la barre de navigation du Concepteur de test unitaire de base de données, cliquez sur DatabaseTest1 et assurez-vous que Test est sélectionné dans la liste déroulante adjacente. Vous pouvez ainsi créer le script de test pour l'action de test dans le test unitaire DatabaseTest1.

  2. Ajoutez les instructions T-SQL suivantes dans l'éditeur T-SQL :

    SELECT * from Orders where ShipCity = 'Seattle'
    
  3. Dans le volet Conditions de test, cliquez sur la condition de test dont le type est Non concluant, puis supprimez-la en cliquant sur Supprimer la condition de test (x).

  4. Ajoutez une condition de test du nombre de lignes en cliquant sur Nombre de lignes dans la liste du volet Conditions de test, puis sur Ajouter une condition de test (+).

  5. Dans la fenêtre Propriétés, affectez la valeur 1 à la propriété Nombre de lignes.

  6. Dans le menu Fichier, cliquez sur Enregistrer tout.

    Vous êtes maintenant prêt à effectuer votre test.

Pour exécuter le test unitaire de base de données

  1. Dans le menu Test, pointez sur Fenêtres, puis cliquez sur Affichage de tests.

    La fenêtre Affichage de tests répertorie deux tests. Précédemment dans cette procédure pas à pas, vous avez créé le test qui se nomme DatabaseTest1 et vous lui avez ajouté des instructions T-SQL et une condition de test. Le test qui se nomme DatabaseTest2 est vide.

  2. Cliquez avec le bouton droit sur DatabaseTest1, puis cliquez sur Exécuter la sélection.

    Visual Studio Team System Database Editionutilise le contexte privilégié que vous avez spécifié pour vous connecter à la base de données et appliquer le plan de génération de données. Database Edition bascule ensuite vers le contexte d'exécution avant d'exécuter le script T-SQL dans le test. Ensuite, Database Edition évalue les résultats du script T-SQL par rapport à ceux que vous avez spécifiés dans la condition de test et affiche le résultat Réussite ou Échec dans la fenêtre Résultats des tests.

  3. Afficher le résultat des tests dans la fenêtre Résultats des tests.

    Le test a réussi, ce qui signifie que l'exécution de l'instruction SELECT retourne une ligne.

    Remarque :

    Si vous modifiez la valeur de départ pour [Orders][ShipCity] dans votre plan de génération de données, ou le nombre de lignes à générer, il est possible que ce test échoue. Si vous générez 50 lignes de données de Northwind à l'aide de la valeur initiale de 5, le champ ShipCity aura pour valeur Seattle dans l'un des résultats.

Étapes suivantes

Dans un projet classique, vous définiriez des tests unitaires supplémentaires afin de vérifier que tous les objets de base de données critiques fonctionnent correctement. Lorsque le jeu de tests est terminé, vous vérifiez ces tests dans le contrôle de version pour les partager avec l'équipe.

Après avoir établi des données de base, vous pouvez créer et modifier des objets de base de données, puis créer des tests associés pour vérifier si une modification est susceptible d'interrompre le comportement existant.

Voir aussi

Tâches

Comment : créer un test unitaire de base de données vide

Comment : configurer l'exécution de tests unitaires de base de données

Concepts

Vue d'ensemble de la terminologie de Database Edition

Autres ressources

Conception de tests unitaires de base de données

Personnalisation des tests unitaires de base de données dans Visual Basic ou Visual C#