Externalisation des données

Documents pareils
Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Chapitre 2. Classes et objets

DMP1 DSFT des Interfaces DMP des LPS Annexe : complément de spécification sur l impression des documents à remettre au patient

MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

Lancement de la simulation SIMBA

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Eole - gestion des dictionnaires personnalisés

TP SIN Programmation sur androïde Support : eclipse

NOTRE PERE JESUS ME PARLE DE SON PERE. idees-cate

Interagir avec le SharePoint. Version 1.0

RMI le langage Java XII-1 JMF

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Dans l'article précédent, vous avez appris

Projet gestion d'objets dupliqués

Premiers Pas en Programmation Objet : les Classes et les Objets

Chapitre 4 : Édition de fichiers texte - Vi

Tutoriel d installation de Hibernate avec Eclipse

Sécurité. Objectifs Gestion de PKI Signature Cryptage Web Service Security

GPS GARMIN ETREX 30 GESTION DES FICHIERS GPX

La base de données XML exist. A. Belaïd

Gestion d identités PSL Exploitation IdP Authentic

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

TP1 : Initiation à Java et Eclipse

progression premiere et terminale

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

«courtier» : un broker ou un dealer au sens de la Loi de 1934 dont l'établissement principal est situé aux États-Unis d'amérique;

TP1 : Initiation à Java et Eclipse

Authentification unique Eurécia

I. Introduction aux fonctions : les fonctions standards

A. Architecture du serveur Tomcat 6

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

R, Bonnes pratiques. Christophe Genolini

Utilisation d objets : String et ArrayList

Séquence rédigée de manière provisoire : Document de travail FAIRE ROULER - "Petites Voitures" CYCLE II

Générer du code à partir d une description de haut niveau

Mention : En débat

DirXML License Auditing Tool version Guide de l'utilisateur

Le bridge c'est quoi? Laval Du Breuil École de bridge Picatou, Québec

Légende Taille AN : Fichier Ancienne Norme 32 ; Taille NN : Fichier Nouvelle Norme 38 Zone avec * renseignée dans les fichiers de mises à jour

Décret du 11 mars 1999 relatif au permis d environnement

Gestion mémoire et Représentation intermédiaire

CORRECTION URGENTE SUR LES DISPOSITIFS MÉDICAUX NOTIFICATION DE SÉCURITÉ AUX UTILISATEURS

Corrigés des premiers exercices sur les classes

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Chapitre 5 : Les procédures stockées PL/SQL

CRÉER DES LEÇONS AVEC L'ÉDITEUR DU LOGICIEL 1000 MOTS POUR APPRENDRE À LIRE EN FRANÇAIS, ANGLAIS ET ALLEMAND

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Paiement de factures aux entreprises créancières RBC Guide du client

Annexe C Spécification pour les fichiers importés en format XML

Programmation Orientée Objet

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Web Application Models

Bases de Données. Plan

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

LES ACCES ODBC AVEC LE SYSTEME SAS

Programmation Mobile Android Master CCI

2- Relation entre Writer et Calc dans le mailing

Tel mobiles partie.

Configuration des routes statiques, routes flottantes et leur distribution.

1. Introduction Création d'une requête...2

Notice Générale - MODULE CLIENTS. I. Description générale du module. II. La liste des clients a. Accès

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Initiation à JAVA et à la programmation objet.

F OMPI ORGANISATION MONDIALE DE LA PROPRIÉTÉ INTELLECTUELLE GENÈVE. Dix-septième session Genève, 7 11 mai 2007

Reaper : utilisations avancées

COMMUNICATION N D. 134

Installation et configuration de SQL Server 2008 R2 (v3)

Réponse : Liste des paramètres de retour :... 7 Simuler un envoi (POST /send/simulate)... 8 Publipostage (POST /send/lists)...

TD/TP PAC - Programmation n 3

API FTP SMSENVOI V1.1

2 e partie de la composante majeure (8 points) Les questions prennent appui sur six documents A, B, C, D, E, F (voir pages suivantes).

EXA1415 : Annotations

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

Utilisation de Ntdsutil.exe pour prendre ou transférer des rôles FSMO vers un contrôleur de domaine

Installer VMware vsphere

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Gestion Électronique de Documents et XML. Master 2 TSM

Domain Name Service (DNS)

AGRÉGATION «ÉCONOMIE ET GESTION»

Avec la collaboration des Instituts du C.S.N L AVANT-CONTRAT

Spécifications techniques et fonctionnelles du multi-années pour les noms de domaine en.fr

QUESTIONNAIRE PROPOSITION D'ASSURANCE RC PROFESSIONNELLE ARCHITECTE D INTERIEUR


Bind, le serveur de noms sous Linux

7 S'abonner aux notifications des nouveaux appels

Master d Informatique Corrigé du partiel novembre 2010

Installer un serveur de listes de diffusion

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Titres de créances NégOciables Refonte Informatique et organisationnelle

Post-production ~ captation audio/vidéo ~ RMLL 2010, Bordeaux

DOMAIN NAME SYSTEM. CAILLET Mélanie. Tutoriel sur le DNS. Session Option SISR

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Adobe Premiere Pro Exportation

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Installation Serveur DNS Bind9 Ubuntu LTS

Assurance Pertes Pécuniaires sur un Crédit Impôt Recherche (CIR) Questionnaire de souscription CIR 2015 (pour les dépenses de R&D 2014)

Cours de Génie Logiciel

Tp 1 correction. Structures de données (IF2)

Transcription:

Externalisation des données Jean-Marc Farinone Maître de Conférences Conservatoire National des Arts et Métiers CNAM Paris (France) 1

Etat de nos connaissances Jusqu'à alors, on a des classes de tests contenant des programmes (méthodes) de tests avec leurs propres données On ne sait qu'écrire de nouvelles méthodes de tests si on change de données On aimerait avoir, pour un programme de tests, un jeu (ensemble) de données qu'on va utiliser pour tester le programme Concrètement, on va indiquer qu'une méthode de test va prendre ces données à "l'extérieur" de la classe On veut faire de "l'externalisation de données" 2

Lancer plusieurs fois les Il y a seulement trois contraintes tests : syntaxe La classe de test doit avoir un et un seul constructeur. Il fabriquera l'objet de la classe de test sur lequel les tests seront lancés La classe de test doit être annotée @RunWith(Parameterized.class) La classe de test doit posséder la méthode : @Parameters public static Collection<Object[]> data() Par exemple : @RunWith(Parameterized.class) public class RationnelTest { // Le seul et unique constructeur de cette classe de test public RationnelTest() {...}... @Parameters public static Collection<Rationnel[]> data() {...} } 3

La méthode... data() Sa syntaxe est : @Parameters public static Collection<Object[ ]> data() Elle retourne donc une Collection de tableaux! C'est à dire une suite de tableaux! Chaque élément de cette Collection est donc un tableau d'object Un tel tableau d'object possède les arguments pour le seul et unique constructeur de cette classe de test Tous les tableaux retournés doivent donc avoir le même nombre d'élément : bons sens Finalement on obtiendra et on va ainsi lancer nombredetableauretournéparmamethodedata * NombreDeMethodesDeTest tests! 4

Externationalisation des données Si on met le jeu de données dans le code, on n'a guère avancé! car si on veut changer (ajouter, enrichir) ce jeu de données, il faudra avoir le code du test, connaître Java, ne pas dégrader ce qui a déjà été fait, etc. ;-) On veut mettre ces données à l'extérieur du programme. Dans un fichier XML (bien pratique pour la compréhension) Pour cela on va créer : un schéma XML qui décrit la structure des données de test, un fichier XML contenant les valeurs des données de test La méthode data() ira lire le fichier XML, va transformer le contenu en une Collection de tableaux et retourner cette Collection (comme d'hab) 5

XML Schema Pour définir le format des données d'un fichier XML, on précise sa structure en indiquant qu'il vérifie les caractéristiques décrites dans un fichier XML Schema Dans les premières versions d'xml, on le précisait à l'aide de fichier dtd (Document Type Definition). Le principal défaut des dtd est que la syntaxe d'une dtd n'est pas en XML contrairement au fichier XML Schema Un fichier XML permet de définir, entre autre, des "types" de données On a des outils pour construire de tels fichiers (voir exercice sous eclipse) 6

Exemple de XML Schema Voici un exemple définissant certains "types" de données <?xml version="1.0" encoding="utf-8"?> <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.example.org/rationnelschema" xmlns:tns="http://www.example.org/rationnelschema" elementformdefault="qualified"> <complextype name="rationnel"> <attribute name="numerateur" type="int"></attribute> <attribute name="denominateur" type="int"></attribute> </complextype> <complextype name="data"> <sequence> <element name="r1" type="tns:rationnel"></element> <element name="r2" type="tns:rationnel"></element> <element name="resultaddition" type="tns:rationnel"></element> <element name="resultsoustraction" type="tns:rationnel"></element> </sequence> </complextype> <element name="dataset"> <complextype> <sequence> <element name="data" type="tns:data" maxoccurs="unbounded" minoccurs="0"></element> </sequence> </complextype> </element> </schema> 7

Données XML Ayant le schéma XML (la structure) des données, il faut construire des données comme jeu de tests. On aura par exemple : <?xml version="1.0" encoding="utf-8"?> <tns:dataset xmlns:tns="http://www.example.org/testschema" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.example.org/testschema testschema.xsd "> <tns:data> <tns:r1 denominateur="3" numerateur="2" /> <tns:r2 denominateur="3" numerateur="4" /> <tns:resultaddition denominateur="1" numerateur="2" /> <tns:resultsoustraction denominateur="3" numerateur="-2" /> </tns:data> <tns:data> <tns:r1 denominateur="9" numerateur="2" /> <tns:r2 denominateur="3" numerateur="1" /> <tns:resultaddition denominateur="9" numerateur="5" /> <tns:resultsoustraction denominateur="9" numerateur="-1" /> </tns:data> </tns:dataset> Que représente ces données? 8

Correspondance notions XML - code Java Il faut alors construire des classes qui manipulent les données XML Là aussi, des outils pour cette construction, sont donnés Par la suite à l'aide de ces classes, la méthode data(), pourra utiliser les données XML Et voilà! 9

Exercice Faire des données de tests externationalisées pour une classe à tester 10

Fin 11