Alexis Hassler
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 possiblités étaient limitée et qu’ils 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, JPA, sur JBoss, Glassfish et Tomcat.
http://soft-shake.ch/2011/conference/sessions/java/2011/09/06/arquillian.html
21. Problème
1 conteneur par technologie
– Pas de mode embarqué universel
Mode remote + Maven
– pas dans le cycle de vie standard
Configurations spécifiques
34. 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
35. 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
36. 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
37. 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
38. ✔ EJB / JBoss AS 7 managed
✔ EJB / JBoss AS 7 remote
39. Architecture
DeployableContainer
ShrinkWrap
Arquillian
Conteneur
Test Case
junit-container
JUnit
40. Protocole Servlet
ShrinkWrap.create(WebArchive.class)
.addClasses(...);
Web Archive
JUnit
Arquillian Test case
Arquillian Servlet
41. Protocole Servlet 3.0
ShrinkWrap.create(JavaArchive.class)
.addClasses(...);
Web Archive
JUnit
Arquillian Test case
Arquillian Servlet
42. Protocole Servlet 2.5
ShrinkWrap.create(JavaArchive.class)
.addClasses(...);
Arquillian ear
Java Archive
JUnit
Arquillian Test case
Arquillian war
Arquillian Servlet
43. 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
44. Protocole JMX-AS7
ShrinkWrap.create(XxxArchive.class)
.addClasses(...);
JBoss AS 7
Any Archive
JUnit
Arquillian
Test case
Arquillian Service
Arquillian MBean