Partager via


Comment : créer un test unitaire piloté par des données

Vous pouvez configurer un test unitaire afin d'extraire les valeurs d'une source de données au lieu d'entrer des valeurs dans une méthode de test. Le test unitaire est exécuté successivement pour chaque ligne contenue dans la source de données. Il est ainsi plus facile de tester diverses entrées au cours d'une seule série de tests.

Vous configurez un test unitaire pour extraire des valeurs d'une source de données en deux étapes. La première consiste à établir la connexion entre la méthode de test unitaire et la source de données à l'aide des propriétés du test unitaire. La seconde consiste à assigner les variables de la méthode pour extraire leurs valeurs depuis la colonne concernée dans votre source de données. Vous suivez ces étapes dans la logique de la méthode de test elle-même.

Exemple de test unitaire piloté par des données

L'illustration suivante représente deux tests unitaires : l'un ajoute deux nombres et l'autre concatène un prénom avec un nom. Ces tests unitaires sont configurés de manière à extraire leurs valeurs depuis une base de données.

Tests unitaires pilotés par des données

Exemple de test unitaire piloté par des données

  1. Cette ligne fournit l'attribut DataSource et la chaîne de connexion. Les informations exactes de la chaîne de connexion diffèrent selon le type de source de données que vous utilisez. Dans cet exemple, nous avons utilisé une base de données Access.

  2. Lorsque les valeurs sont extraites d'une table de la base de données, elles doivent être converties en un type approprié. Dans notre exemple, le premier test unitaire a converti les valeurs de la base de données en chaînes et le deuxième les a converties en entiers.

  3. La propriété TestContext.DataRow indique au test unitaire les lignes desquelles extraire des données. Dans ce cas il extraira des données qui démarrent à partir de la première ligne puis séquentiellement jusqu'à ce qu'il atteigne la dernière ligne dans la table. Pour plus d'informations sur cette propriété, consultez TestContext.

  4. Le nom de la colonne indique au test unitaire la colonne de laquelle extraire des données.

Vous pouvez consulter les résultats détaillés pour chaque ligne de données que le test a utilisée, en double-cliquant sur le test dans la fenêtre Résultats des tests.

Résultats détaillés d'un test unitaire piloté par des données

Résultats détaillés du test unitaire piloté par des données

Établir une connexion entre votre test unitaire et votre source de données

C'est la première étape de la configuration d'un test unitaire pour utiliser une source de données. Vous établissez la connexion entre la méthode de test unitaire et la source de données.

Cette procédure indique comment utiliser les propriétés du test unitaire pour créer la connexion. Toutefois, vous pouvez également créer la connexion en créant un fichier app.config et en lui ajoutant des informations de connexion. L'utilisation d'un fichier app.config présente l'avantage que vous pouvez modifier l'emplacement de la base de données sans apporter de modifications au test unitaire lui-même. Pour plus d'informations sur la création et l'utilisation d'un fichier app.config, consultez Procédure pas à pas : utilisation d'un fichier de configuration pour définir une source de données.

Notes

Si vous connaissez les chaînes de connexion de données, vous pouvez entrer la chaîne après le crochet ouvrant de l'élément [TestMethod()] au lieu d'utiliser la fenêtre de propriétés.

[Source de données (insérez la chaîne de connexion ici), TestMethod()]

Pour connecter le test unitaire à une source de données

  1. Ouvrez la solution qui contient la méthode de test pour laquelle vous souhaitez utiliser une source de données.

  2. Dans le menu Test, pointez sur Fenêtres, puis cliquez sur Affichage des tests.

  3. Dans la fenêtre Affichage des tests, cliquez avec le bouton droit sur le test unitaire pour lequel vous souhaitez utiliser une source de données, puis cliquez sur Propriétés.

  4. Dans la fenêtre Propriétés, cliquez sur Chaîne de connexion de données puis sur le bouton de sélection (...).

  5. Suivez les instructions indiquées dans l' Assistant Nouvelle source de données de test pour créer la connexion de données.

    Une chaîne de connexion est ajoutée au test unitaire après le crochet ouvrant de l'élément [TestMethod()].

Assigner des variables pour extraire leurs valeurs d'une source de données

Il s'agit de la seconde étape de la configuration d'un test unitaire pour utiliser une source de données. Vous assignez les variables de la méthode pour extraire leurs valeurs depuis la colonne concernée dans votre source de données.

Pour assigner des variables aux valeurs d'une source de données

  1. Ouvrez le fichier de test unitaire qui contient la méthode de test pour laquelle vous souhaitez utiliser une source de données et localisez les variables dans la méthode de test.

  2. Pour chaque variable que vous souhaitez extraire de la source de données, utilisez la syntaxe TestContext.DataRow["NomColonne"].

Notes

Il vous faudra peut-être convertir les types de données des valeurs la source de données dans ceux de votre projet de code de test, comme indiqué dans l'exemple précédent.

Exécuter le test unitaire et analyser les résultats

Vous exécutez un test unitaire piloté par des données de la même manière qu'avec tout autre test unitaire. Vous pouvez consulter les résultats détaillés pour chaque ligne de données que le test a utilisée, en double-cliquant sur le test dans la fenêtre Résultats des tests.

Pour exécuter et examiner les résultats d'un test unitaire piloté par des données

  1. Cliquez avec le bouton droit n'importe où dans votre test unitaire, puis cliquez sur Exécuter les tests.

  2. Après l'exécution du test, double-cliquez sur le test dans la fenêtre Résultats des tests pour consulter les résultats de chaque itération du test dans la fenêtre Résultats des tests pilotés par des données.

Voir aussi

Référence

TestContext

Concepts

Anatomie d'un test unitaire

Comment : créer et exécuter un test unitaire