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.

Présentations similaires


Présentation au sujet: "Les assertions en Java."— 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 Evaluation de l’expression booléenne Si vraie, assert est sans effet 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 A l’exécution
Dans sa forme la plus élaborée, une assertion s’écrit: assert expression1 : expression2; 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."

Présentations similaires


Annonces Google