C# : Les Tests unitaires – Part 3 2/2 – Déploiement de fichiers et jeux de tests

Après le déploiement de fichiers, voici comment utiliser ces fichiers Xml deployés comme source de données pour faire des jeux de tests.

Voici notre test unitaire qui utilise notre fichier Xml

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\NumbersData.xml",
"Number", DataAccessMethod.Sequential), DeploymentItem("DemosTestUnitaires.Test\\TestData\\NumbersData.xml"), TestMethod]
public void AdditionDeuxChiffresEtObtenirLaSomme_TestParFichierDeDonnees()
{
//Arrange
int c = int.Parse(TestContext.DataRow["c"].ToString());
int b = int.Parse(TestContext.DataRow["b"].ToString());
Calculatrice calculatrice = new Calculatrice();

int actualSomme = 10; //la somme de c et b
int expectedSomme = 0;

//Act
expectedSomme = calculatrice.Add(c, b);
Debug.WriteLine(DateTime.Now.TimeOfDay.ToString());
//Assert
Assert.IsTrue(expectedSomme <= actualSomme, c.ToString() + " + " + b.ToString());

}

Explication :

Les attributs :

  • DataSource : nom du provider (ici Xml) , chemin après déploiement du fichier xml, le nom de la table, méthode d’accès au données (ici séquentiel, ca peut être aussi aléatoire)
  • DeploymentItem : déploiement du fichier xml

Ces attributs peuvent être configurés automatiquement grâce à un assistant qui s’obtient en allant dans la liste des test de notre projet, cliquez sur la méthode de test désirée et dans la fenêtre des propriétés choisir « Data Connection String »

Exploitation des données :

Les données du datasource sont lues avec la méthode

TestContext.DataRow

int c = int.Parse(TestContext.DataRow["c"].ToString());
int b = int.Parse(TestContext.DataRow["b"].ToString());

Résultat du test:Avec ce fichier xml, le test est en SUCCES :

Par contre si dans le fichier xml on rajoute ce jeu de données :

<Number c="1" b="10" />

Dans ce cas le test est en Echec :

Remarque : comme vous pouvez le voir dans la fenêtre du résultat du test il y a le détail pour chaque élément du fichier xml. En fait la méthode du test unitaire est exécutée pour chaque ligne du fichier xml.

Voila pour cette partie, dans la 4eme partie de cet article, je montrerai comment faire des tests unitaires qui mettent à jour (ou insertion)  des enregistrements d’une base de données.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s