Netapsys Blog

Aller au contenu | Aller au menu | Aller à la recherche

AGILE & MORE EFFICIENT : Test JUnit, EasyMock & Spring

Ce billet aborde l'aspect purement technique de mise en oeuvre de l'agilité dans le développement d'applications robustes.
Il s'inscrit dans la continuité du séminaire de Netapsys sur le thème "Agile & more efficient".
Il présente les tests JUnit 4.x et EasyMock sous Spring afin de concrétiser "être agile".
EasyMock permet de simuler l'accès aux fonctionnalités des couches applicatives, par exemple la couche DAO.
Un des piliers de l'agilité est TDD (Test Driven Development).
Le TDD est une approche évolutive de réalisation de projets basés sur les tests avant même de produire du code effectif.
TDD combine le TFD (Test First development) et le refactoring afin d'arriver à affiner / définir les spécifications.
Easymock et JUnit constituent donc les briques afin de réaliser le TDD via les tests unitaires et d'intégration.
En fait, les tests unitaires sont faciles à mettre en place mais les tests d'intégration restent encore difficiles.
Et le coût de réaliser les tests d'intégration est pesant.
Et EasyMock permet la mise en place des tests sans pour autant avoir développé une ligne de code d'implémentation des couches applicatives. Tous ces aspects vont être explicités ci-dessous.

Lire la suite...

Spring MVC 2.5+ par l'exemple - Partie I

L'objet de ce billet est d'illustrer progressivement, pas à pas, par un exemple, simple mais pratique, la création d'une application web avec Spring MVC utilisant exclusivement (et abusivement) les annotations de Spring apparues depuis la version 2.5 ( ex. @Controller, @Autowired).
Ce billet s'inscrit dans une série d'articles nous permettant d'introduire Spring WebFlow 2.
Dans cette première partie de la série, nous mettons en place ensemble, pas à pas, l'environnement (Eclipse & Maven) et les dépendances nécessaires. Et nous terminons cette partie par écrire une classe JUnit pour tester le controller Spring MVC (seulement avec les annotations) afin de valider notre configuration et nous lançons le client navigateur afin de tester le déploiement sous jetty.
Nous enchaînons, dans un second billet, par expliciter les couches DAO (à base de jdbc template), service et l'approfondissement du controller Spring MVC qui consomme les méthodes de la couche service.
Pour ce faire, nous présentons progressivement l'exemple qui consiste à rechercher un client par son nom (obligatoire), le prénom(facultatif). Si un ou plusieurs clients existent, on affiche la liste puis lorsqu'un client est sélectionné, on affiche l'écran qui permet d'actualiser ses détails.
Si aucun client ne correspond à la recherche, on affiche un formulaire, pré-rempli, de création de ce client puis à la validation on lui renvoie l'écran de modification des détails.
Cet exemple nous servira pour introduire Spring WebFlow.
Vous pouvez télécharger les sources de la première partie springswf-partie1.

Lire la suite...