Annexe 1 Tests unitaires d'applications Java avec JUNIT

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

La programmation orientée objet avec Java L3-MIAGE Plan
Développement guidé par les tests
Description Environnement de développement générique développé par IBM Écris en Java (multi plateformes) La version SDK fourni de nombreux outils pour.
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Gestion des événements (suite)
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
JXDVDTEK – Une DVDthèque en Java et XML
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
CONTINUOUS TESTING Hakima Zidouri Informatique Réseau 3
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
C.
Infos pratiques Rattrapage du 11/11 TD : lundi 16/11
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Outils de tests, logs et documentation Frédéric Moalannée 2010/2011 POO.
JUnitTest Infected: Programmers Love Writing Tests A little test, a little code, a little test, a little code…
Faculté I&C, Claude Petitpierre, André Maurer 1 Héritage par prototype Héritage dattributs ou de méthodes Héritage de constructeurs.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Rappels sur la Programmation java
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Structures de données IFT-2000
Structures de données IFT Abder Alikacem Gestion des exceptions Département dinformatique et de génie logiciel Édition Septembre 2009.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Calculatrice Financière Android
TDD : avec ou sans Mocks ? Par Anthony Dahanne, Yannick Ameur,
JUnit Présentation complète de JUnit et « guide d’utilisation » en 13 transparents.
Programmation concurrente
IFT 6800 Atelier en Technologies d’information
Les tests Démo 10 : IFT3912.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Java Authentication And Authorization Service API
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Outils de test fonctionnel et non fonctionnel
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
Patrons de conceptions de créations
1111 Gestion des exceptions Objectifs À la fin de ce cours, vous serez capables de : • Expliquer les concepts de base de la gestion des exceptions.
Les assertions en Java.
Test logiciel Xavier Baril.
1 PLAN I. Eclipse Modeling Framework  Présentation  Le modèle Ecore  Code généré  Utilisation de template II.Graphical Modeling Framework  Présentation.
Tests Unitaires POO Frédéric Moal année 2010/2011 1
Exploration de la programmation android Formation Assurer par: Club FreeWays Réalisé par: BOUHJJA Lamia.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Types Abstraits.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
Tutorat en bio-informatique
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
IFT 785 Approches Orientée Objets Plan de cours. Information générale Professeur : – Sylvain Giroux –
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
Entity/Facet/Pattern Une application qui en a…
ITI1520 Lab #7 Classes librairies et Testing avec JUnit Daniel Amyot, Diana Inkpen, Alan Williams.
Héritage Conception par Objet et programmation Java
Complément JAVA JUnit.
AXIS Implémentation des echanges type RPC en XML (XML RPC ou JAX-RPC API)‏ Framework à installer au-dessus de Tomcat JDK récent.
1 Cpt JAVA : Eclipse (bis) Debogage. 2 Code à tester public class siecle { int t; public siecle() { super(); t=1; } static public boolean vrai() { return(false);
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
LES CLASSES ET LES OBJETS
INSCRIPTIONS SPORTIVES
Transcription de la présentation:

Annexe 1 Tests unitaires d'applications Java avec JUNIT Annexe 1- Tests unitaires avec JUNIT Annexe 1 Tests unitaires d'applications Java avec JUNIT

Contenu Présentation Architecture Terminolgie: Ecriture deTest Assertions, TestCase, Fixture, TestSuite, TestRunner ,Errors&Failures Ecriture deTest Exécution de Test: TestCase, TestSuite, AllTests

Présentation de JUNIT JUnit désigne un framework de rédaction et d'exécutions de tests unitaires. Imaginé et développé en Java par Kent Beck et Erich Gamma. IL représente une instance de l’architecture « xUnit » Basé sur le patron de conception [Gamma95] C’est un outil gratuit et open source De nombreux IDE intègrent Junit : Eclipse, NetBeans, Jbuilder, …

Architecture

Terminologie : les assertions static void assertTrue(boolean condition) static void assertFalse(boolean condition) Vérifie si condition est vraie/fausse. static void assertEquals(expected, actual) Vérifie que expected & actual sont égaux. static void assertSame(expected, actual) static void assertNotSame(expected, actual) Vérifie que expected & actual référent au même objet. static void assertNull(Object objet) static void assertNotNull(Object objet) Vérifie que objet est null/pas null. static void fail() Provoquer l’echec du test.

Terminologie : les tests cases Ecrire une classe de test consiste à: hériter de la classe TestCase implémenter plusieurs méthodes nommées test<f>() utiliser des assertions (assertXXX()): asserTrue(1 > 0); assertEquals(7,3+4);

Terminologie : les fixtures C’est le code de mise en place du contexte de test: Des sous-classes de TestCase qui ont plusieurs méthodes testXXX() peuvent utiliser les méthodes setUp() et tearDown() pour initialiser, resp. nettoyer, le contexte commun aux tests (= fixture) Chaque test s’exécute dans le contexte de sa propre installation, en appelant setUp() avant et tearDown() après chaque méthode de test. Pour deux méthodes, exécution équivalente à : setUp(); testMethod1(); tearDown(); setUp(); testMethod2(); tearDown(); Le contexte est défini par des attributs du TestCase.

Terminologie : les tests suites Une TestSuite peut être formée de TestCase ou de TestSuite. Elle appelle automatiquement toutes les méthodes testXXX() de chaque TestCase. 2 possibilités pour construire une TestSuite: explicitement: Ajouter les méthodes à tester en faisant appel à la méthode addTest(Test test): public void addTest(Test test) utilisant l’introspection public TestSuite(java.lang.class testClass) Adds all the methods starting with "test" as test cases to the suite.

Terminologie : les tests runners Utilitaires pour lancer une suite de tests: On trouve les utilitaires JUnit Textuel: junit.textui.TestRunner.run(TestClass.class); Graphique: Awt: junit.awtui.TestRunner.run(TestClass.class); Swing: junit.swingui.TestRunner.run(TestClass.class); On trouve les utilitaires liés aux plugins intégrés aux IDE :

Nombre de méthodes de test exécutées Terminologie : Errors et Failure JUnit distingue entre les erreurs et les échecs. « Failure » = assertion (assertXXX) qui échoue. « Error » = Exception non attendue. Lors d’une détection d’une « Failure » ou « Error » dans une méthode de test, Junit: Interrompt l’exécution de cette méthode. Lance l’exécution de la méthode de test suivante. Nombre de méthodes de test exécutées Nombre d’exceptions Nombre d’échecs

Ecriture d'un test (1) Un « TestCase » avec « fixture »:

Ecriture d'un test (2) Ecriture des méthodes de test: Résultats:

JUnit  Exécution de test(1):TestCase 1ère méthode (utilisant Eclipse): 2ème méthode (utilisant un « TestRunner »):

JUnit  Exécution de test(2):TestSuite On définit dans toutes les classes de Test la méthode public static TestSuite suite(){}

JUnit  Exécution de test(3):AllTests On ajoute les« TestSuite » de tous les « TestCase » dans un nouveau « TestSuite ».

JUnit  JUnit 4:nouveautés On utilise les annotations sur les méthodes à la place des conventions de noms des méthodes: @Test indiquer une méthode de test @Before indiquer une méthode setUp @After indiquer une méthode tearDown Plus besoin d’hériter de TestCase. Plus besoin de créer une TestSuite. On ne distingue plus entre « Failure » et « Error ». On importe < org.junit.* >