Présentation "Tests d'intégration JavaEE avec Arquillian" à SoftShake 2011
Avec les EJB 3, on a beaucoup mis en avant leur caractère POJO qui facilite la mise en oeuvre de tests unitaires ainsi que le conteneur autonome pour des tests d’intégration. On a vite constaté que ces possibilités étaient limitées et qu’il manquait un outil dans cet ensemble.
Les équipes de JBoss nous proposent Arquillian. Cet outil est capable de piloter les serveurs d’applications, d’y déployer des archives et de tester toute sorte de composant JavaEE dans leur jus, avec un effort minimal.
Cette session est très pratique, elle montre comment utiliser Arquillian pour les tests d’intégration CDI, EJB et JAX-RS sur JBoss et Glassfish.
17. Problème
1 conteneur par technologie
– Pas de mode embarqué universel
Mode remote + Maven
– pas dans le cycle de vie standard
Configurations spécifiques
30. Conteneur embarqué
Démarrage du conteneur
(in-process)
Déploiement de l'archive
Exécution locale du test
Retrait de l'archive
Arrêt du conteneur
31. Conteneur géré
Démarrage du conteneur
(out-process)
Déploiement de l'archive
Déploiement du service
Arquillian
Exécution du test
dans le conteneur
Retrait de l'archive
Arrêt du conteneur
32. Conteneur distant
Conteneur
préalablement démarré
Déploiement de l'archive
Déploiement du service
Arquillian
Exécution du test
dans le conteneur
Retrait de l'archive
33. Conteneurs
Remote Managed Embedded
JBoss AS 4.2, 5.0, 5.1, 6.0, 7.0 4.2, 5.1, 6.0, 7.0 5.1, 6.0
Glassfish 3.1 3.1
Websphere AS 7.0 8.0
Jetty 6.1, 7.0
Tomcat 6.0 6.0
Weld SE 1.1, SE 1.0, EE 1.1
OpenWebBeans 1.0
OpenEJB 3.1
34. ✔ EJB / JBoss AS 7 managed
✔ EJB / JBoss AS 7 remote
35. Architecture
DeployableContainer
ShrinkWrap
Arquillian
Conteneur
Test Case
junit-container
JUnit
36. Protocole Servlet
ShrinkWrap.create(WebArchive.class)
.addClasses(...);
Web Archive
JUnit
Arquillian Test case
Arquillian Servlet
37. Protocole Servlet 3.0
ShrinkWrap.create(JavaArchive.class)
.addClasses(...);
Web Archive
JUnit
Arquillian Test case
Arquillian Servlet
38. Protocole Servlet 2.5
ShrinkWrap.create(JavaArchive.class)
.addClasses(...);
Arquillian ear
Java Archive
JUnit
Arquillian Test case
Arquillian war
Arquillian Servlet
39. Protocole Servlet
ShrinkWrap.create(EnterpriseArchive.class)
.addAsModule(jar);
ShrinkWrap.create(JavaArchive.class)
.addClasses(...);
Enterprise Archive
Java Archive
JUnit
Arquillian Test case
Arquillian war
Arquillian Servlet
40. Protocole JMX-AS7
ShrinkWrap.create(XxxArchive.class)
.addClasses(...);
JBoss AS 7
Any Archive
JUnit
Arquillian
Test case
Arquillian Service
Arquillian MBean