1 2 3 4 5 6 7 8 9 10 11 12 

Cactus, tests unitaires sur des Servlet

4.Réaliser un test avec Cactus

4.1.Ecriture d’un test pour un Servlets

Il existe plusieurs étapes par lesquelles il faut passer pour écrire un test avec Cactus. Dans les lignes qui vont suivre, je présenterais quelques une des méthodes permettant de réaliser un test pour un code utilisant les objets de l’API Servlet. Vous pouvez retrouver l’ensemble de ces étapes ainsi que des informations supplémentaire concernant les méthodes de Cactus à cette adresse.

- Dans une première étape, il vous faut importer les packages ‘org.apache.cactus’ et ‘junit.framework’ afin de réaliser le test. Le premier package contient bien évidement les classes de Cactus, le second package quand à lui, est nécessaire car Cactus utilise JUnit comme ‘client’ pour appeler les tests de l’application. Vous devriez donc obtenir les lignes suivantes :


import org.apache.cactus.*;
import junit.framework.*;


- Dans une seconde étape, il vous faut créer une classe de test qui hérite d’une des classes de test de Cactus. Il existe plusieurs classes de test dont l’utilisation dépend de l’objet que vous souhaitez tester.

Pour tester un code utilisant des objets de l’API Servlet tels que HttpServletRequest, HttpServletResponse, ServletConfig, etc … , il faut créer une classe qui hérite de la classe ServletTestCase.


public class MyTestServlet extends ServletTestCase
{


Suivant ce meme principe, vous pouvez créer des classes permettant de tester des codes utilisant des objets de l’API JSP, en héritant de la classe JspTestCase, ainsi que ceux utilisant des objets de l’API Filter, en héritant de la classe FilterTestCase. Vous avez aussi la possibilité de réutiliser une classe héritant de TestCase de l’API JUnit, pour cela il faut utiliser la classe ServletTestSuite.

- Dans une derniere étape, il vous faut utiliser la méthode testXXX() de votre classe de test, méthode tres semblable à la méthode de Junit portant le même nom, mais qui a pour particularité de s’exécuter à l’intérieur d’un conteneur. Dans cette classe, vous allez réaliser les opérations suivantes :
  • Instancier la classe que vous souhaiter tester.
  • Mettre en place les différentes objet coté serveur (Comme ajouter une variable dans la session http).
  • Appeler la méthode à tester.
  • Effectuer les assertions standard de JUnit via les méthodes assert(…), assertEqual(…), fail(…), afin de vérifier la réussite du test.
Il existe aussi d’autres méthodes optionnelles que vous pouvez choisir ou non d’utiliser. Ainsi, la méthode beginXXX(…) vous permettra d’initialiser les paramètres http, ces paramètres pourront ensuite être récupérer dans votre méthode testXXX(…) . De même, la méthode endXXX(…) permettra de récupérer une valeur d’un paramètre http renvoyé par le test tel qu’un cookie ou une réponse http.


1 2 3 4 5 6 7 8 9 10 11 12 

Retrouvez ci-dessous les autres sections du Laboratoire Sun
Evènements
Java Sun Net Talk LIVE CHAT le 2 Avril à 16h303/29/08
SolarisSunDécouvrez les nouveaux Sun Fire sous Intel10/11/07
JavaValtech Days10/9/07
JavaApacheCon du 1 au 4 mai à Amsterdam2/13/07

Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Actualités
SunProjet Kenai: une nouvelle forge open source10/3/08
SunSun Microsystems en forme !8/4/08
SunOpenDS un ldap 100% java7/24/08
SunSun et Fujitsu annoncent un nouveau Sparc647/16/08
SunVisualVM, un outil de surveillance des applications Java7/10/08

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée