La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les assertions en Java. Introduction aux assertions Définition textuelle: Proposition que l'on avance comme vraie  Assert = Confirmer Instruction assert.

Présentations similaires


Présentation au sujet: "Les assertions en Java. Introduction aux assertions Définition textuelle: Proposition que l'on avance comme vraie  Assert = Confirmer Instruction assert."— Transcription de la présentation:

1 Les assertions en Java

2 Introduction aux assertions Définition textuelle: Proposition que l'on avance comme vraie  Assert = Confirmer Instruction assert –Permet de tester des suppositions sur le comportement du code Java –Contient une expression booléenne supposée être vraie A l’exécution –Par défaut les assertions ne sont pas activées, instruction sans effet –Possibilité des les activer pour débogage et tests 1.Evaluation de l’expression booléenne 2.Si vraie, assert est sans effet 3.Si fausse, une erreur est lancée Intérêt –Moyen rapide et efficace de détecter les erreurs de programmation –Facilite la maintenance du code en documentant le fonctionnement interne du programme –Effectuer une interprétation rapide de nos certitudes par la machine (pré-conditions, post- conditions, variant, et invariant) Rappel: Un invariant est quelque chose qui est toujours vrai dans notre classe

3 La syntaxe Dans sa forme la plus élaborée, une assertion s’écrit: –assert expression1 : expression2; Où expression1 est une expression booléenne, conditionnelle expression2 est une expression quelconque ou plus précisément un objet contenant les informations concernant l'échec de l'assertion Exemple:assert isMaConditionVraie() :"Ma condition doit être vérifiée"; A l’exécution –expression1 est évaluée –Si elle est fausse, une erreur de type AssertionError est lancée –La valeur de l’expression2 (transformée en chaîne de caractères) est utilisée comme message dans l’objet AssertionError Package: Object  Throwable  Error  AssertionError

4 Compilation/Activation Par défaut, le compilateur ne reconnaît pas l’instruction assert  Assert a pu être utilisé comme identificateur depuis la version 1.4 de Java Pour compiler du code Java utilisant les assertions  javac –source 1.4 ClasseAssertion.java Par défaut, les assertions ne sont pas testées à l’exécution  Les prédicats définis par les instructions assert étant supposés être toujours vrais, il serait inefficace de les tester à chaque exécution Elles peuvent être activer à tout moment pour tester du code, diagnostiquer des erreurs, débuguer Au moment de lancer l’application, il faut spécifier à la JVM d’utiliser (ou non) les assertions à l’aide de l’argument en ligne de commande:  -ea ou –enableassertions pour l’activation; -da ou –disableassertions pour la désactivation des assertions Utilisation du framework JUnit

5 Un aperçu des méthodes assert

6 Utilisation des assertions Pour documenter toutes les suppositions, il est préférable de le faire en même temps que notre développement Exemple: écriture d’une méthode manipulant une variable x pouvant prendre comme valeur soit 0, soit 1: Avant les assertions Après les assertions Assertion informelle Assertion formelle  Possibilité de bugs n’apparaissant pas tout de suite et difficile à localiser  Lancement d’une AssertionError, le bug apparaît immédiatement

7 Utilisation des assertions Pour tester une précondition d’une méthode privée  Le programmeur fait la supposition que toutes les méthodes qui invoquent cette méthode respectent cette précondition  Cette supposition est possible car la méthode étant privée, il a le contrôle sur tous ces appels  Il peut vérifier que cette supposition est juste en activant les assertions Ne pas utiliser assert pour tester les préconditions d’une classe publique  Le programmeur ne peut garantir que la méthode sera toujours appelé correctement

8 Utilisation des assertions Pour tester un invariant de classe –Exemple: écriture d’une classe permettant d’insérer des objets dans une liste, tout en s’assurant que cette liste est toujours triée Méthode testant si la liste est correctement triée


Télécharger ppt "Les assertions en Java. Introduction aux assertions Définition textuelle: Proposition que l'on avance comme vraie  Assert = Confirmer Instruction assert."

Présentations similaires


Annonces Google