Nous travaillons avec la société Google et avec des technologies comme les cookies pour stocker et/ou accéder à des informations personnelles non sensibles stockées sur votre terminal (identifiants uniques, …), que nous traitons afin de réaliser des statistiques d'usage du site, personnaliser les publicités et le contenu et en mesurer les performances, produire des données d’audience, développer et améliorer les produits.
Acceptez-vous les cookies déposés pour la publicité et les mesures d'audience ?
Dificulté:
Les tests et particulièrement les tests unitaires sont très à la mode actuellement, ils sont particulièrement utiles pour améliorer la robustesse du logiciel.
Un test unitaire est globalement une méthode qui va tester le résultat d'une autre méthode. Si vous avez une méthode double CalculDivision(double a, double b) qui retourne le résultat de la division de deux nombres vous allez pouvoir écrire une méthode de test (TestCalculDivision) qui va appeler CalculDivision en faisant varier les paramètres (a et b) pour s'assurer que le résultat est toujours correct.
Normalement chaque nouvelle méthode écrite par le développeur doit être testée avec un test unitaire.
Pour simplifier cette tâche de nombreux outils ont été développés par des sociétés, ils permettent de sélectionner les tests, de les lancer et d'analyser les résultats. Nous utiliserons l'outil de test intégré à Visual Studio.
Pour pouvoir écrire des tests unitaires, il nous faut une méthode à tester. Nous allons ajouter une méthode à la classe TypeAdhésion pour calculer une réduction au tarif de l’adhésion.
/// < summary> /// ReductionTarif applique une réduction au tarif de l'adhésion. /// On arrondit le nouveau Tarif à la valeur entière la plus proche. /// <summary> /// <param name="reduction">la réduction en pourcent</param> public void ReductionTarif(int reduction) { double reduc = 1 - (reduction / 100.0); Tarif = Convert.ToInt32(Math.Round(Tarif * reduc)); }
Dans Visual Studio vous pouvez avoir une solution qui contient plusieurs projets. Dans tous nos exemples précédents notre solution ne contenait qu’un seul projet (le projet association). Nous allons ajouter un deuxième projet à notre solution.
Dans Visual Studio sélectionnez votre solution dans la fenêtre « Explorateur de solutions » --> clic droit puis « Ajouter » --> « Nouveau projet «. Dans la partie « Test » choisir « Projet de test unitaire ». Pas besoin de changer le nom. Cliquez sur OK.
Un nouveau projet est ajouté à votre solution.
Deux choses importantes à faire
1) Faire le lien entre le projet de test et le projet « association ». Dans le projet de tes sélectionner « Référence » --> clic droit --> « Ajouter une référence ». Sélectionner « Projet » dans la nouvelle fenêtre. Cocher le nom de votre application principale puis OK.
2) Modifier la classe qui contient la méthode à tester. La classe doit être « public » pour pouvoir être vue par le projet de test.
On doit avoir : public class TypeAdhesion
La suite est assez simple car Visual Studio a généré un squelette de code dans le fichier UnitTest1.cs.
Il suffit de rajouter votre code à l’intérieur de la fonction de test. Chaque méthode doit obligatoirement comporter un Assert. C’est cette commande qui détermine si le test est OK ou KO.
Dans l’exemple ci-dessous on a créé deux tests pour la méthode RéductionTarif.
[TestClass] public class UnitTest1 { [TestMethod] public void TestReductionTarif() { TypeAdhesion t = new TypeAdhesion(1, "loisir", 100); //On applique une réduction de 20% au tarif. t.ReductionTarif(20); //le tarif doit maintenant être égal à 80 en arrondissant. Assert.AreEqual(t.Tarif, 80); } [TestMethod] public void TestReductionTarif1() { TypeAdhesion t = new TypeAdhesion(1, "loisir", 12); //On applique une réduction de 20% au tarif. t.ReductionTarif(20); //le tarif doit maintenant être égal à 10 en arrondissant. Assert.AreEqual(t.Tarif, 10); } }
Pour lancer les tests :
« Test « --> « Exécuter» --> « Tous les tests ». La fenêtre « explorateur de tests » va apparaître pour vous indiquer le résultat des tests.
L'exemple complet est sur GitHub.C'est la version qu'il vaut mieux utiliser pour développer l'application complète.
Les questions fréquentes :