Développement dirigé par les tests : mise en pratique


précédentsommairesuivant

II. Chapitre 1 - Préparatifs

II-A. Création de la structure Maven

Première chose à faire, créer la structure Maven2 avec la ligne de commande suivante :

 
Sélectionnez

mvn archetype:create -DgroupId=com.developpez.mynotes -DartifactId=mynotes

Dans un premier temps le module aura les dépendances externes suivantes :

  • ibatis (persistance)
  • commons-dbcp (pool de connexion)
  • hsqldb (Base de données embarquée + driver de connexion)
  • DBUnit pour les Tests unitaires des DAO
  • JUnit 4
 
Sélectionnez
<dependencies>
   <!-- Persistence Layer -->
    <dependency>
        <groupId>org.apache.ibatis</groupId>
        <artifactId>ibatis</artifactId>
        <version>2.3.3.720</version>
    </dependency>
    <dependency>
        <groupId>commons-dbcp</groupId>
        <artifactId>commons-dbcp</artifactId>
        <version>1.2.2</version>
    </dependency>

    <!-- Tests -->
    <dependency>
        <groupId>org.dbunit</groupId>
        <artifactId>dbunit</artifactId>
        <version>2.2.3</version>
        <scope>test</scope>
    </dependency>
    <!-- Database for testing -->
    <dependency>
        <groupId>hsqldb</groupId>
        <artifactId>hsqldb</artifactId>
        <version>1.8.0.7</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.4</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Remarque : iBatis n'est pas déployé par défaut sur les dépôts publics Maven. Ainsi il faut télécharger la version 2.2.3 sur leur site Internet et déployer à la main dans son dépôt local.

Ensuite nous allons configurer le build en indiquant les répertoires de ressources (tout fichier non java) de l'application et de ses tests :

 
Sélectionnez
<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
    <resource>
        <directory>src/main/resources-filtered</directory>
        <filtering>true</filtering>
    </resource>
</resources>
<testResources>
    <testResource>
        <directory>src/test/resources</directory>
    </testResource>
    <testResource>
        <directory>src/test/resources-filtered</directory>
        <filtering>true</filtering>
    </testResource>
</testResources>

Dans la balise <plugins/> de <build> nous allons utiliser le plugin maven-compiler-plugin pour pouvoir forcer la version du jdk :

 
Sélectionnez
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.5</source>
            <target>1.5</target>
        </configuration>
</plugin>

Pour intégrer le projet dans l'IDE Eclipse ou IDEA, il faut déclarer les plugins suivants :

 
Sélectionnez
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-idea-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <downloadSources>true</downloadSources>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
        <downloadSources>true</downloadSources>
    </configuration>
</plugin>

Enfin, pour des besoins de métriques de qualité nous allons ajouter maven-cobertura-plugin qui lancera un rapport de couverture de test lors du lancement du goal mvn site :

 
Sélectionnez
<reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>

II-B. Génération du projet sous l'IDE

Générons le projet suivant l'IDE utilisé :

  • IDEA : mvn idea:idea
  • Eclipse : mvn eclipse:eclipse

Normalement, nous devrions avoir la structure du projet suivant :

Projet IDEA Projet Eclipse
Projet IDEA Projet Eclipse

II-C. Création du script DDL de la base de données

mynotes.ddl
Sélectionnez

            DROP TABLE UTILISATEUR IF EXISTS ;
            CREATE TABLE UTILISATEUR (
                USER_ID    VARCHAR(20) NOT NULL,
                FIRST_NAME VARCHAR(50) NOT NULL,
                LAST_NAME  VARCHAR(50) NOT NULL,
                PASSWORD   VARCHAR(30) NOT NULL,
                EMAIL      VARCHAR(50) NOT NULL,
                IS_ADMIN   BOOLEAN     NOT NULL,
                PRIMARY KEY(USER_ID)
            ) ;

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 David Boissier. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.