Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

soft-shake.ch - Tests d'intégration JavaEE avec Arquillian

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 53 Publicité

soft-shake.ch - Tests d'intégration JavaEE avec Arquillian

Télécharger pour lire hors ligne

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

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

Publicité
Publicité

Plus De Contenu Connexe

Similaire à soft-shake.ch - Tests d'intégration JavaEE avec Arquillian (20)

Publicité

Plus par soft-shake.ch (20)

Plus récents (20)

Publicité

soft-shake.ch - Tests d'intégration JavaEE avec Arquillian

  1. 1. cocktail d’expérience informatiques Genève 3 & 4 octobre 2011 Seconde édition soft-shake.ch Auteur Alexis HASSLER Track Java Session Test d'intégration avec Arquillian
  2. 2. Test d'intégration avec Arquillian Alexis Hassler
  3. 3. Arquillian Alexis Hassler
  4. 4. @AlexisHassler
  5. 5. Arquillian
  6. 6. Alexis Hassler
  7. 7. JavaEE JAX-WS JAX-RS JPA Servlet EJB JNDI JSP CDI JMS JSF
  8. 8. Tests Unitaire Intégration
  9. 9. Test unitaire new mock
  10. 10. ✔ EJB
  11. 11. Test d'intégration Composant déployé dans son conteneur – Mode embarqué – Déploiement distant
  12. 12. EJB Mode embarqué EJBContainer.createEJBContainer() Context.lookup(...)
  13. 13. Spring Framework Runner – Démarrer l'ApplicationContext @RunWith @Autowired
  14. 14. CDI Weld SE – Runner maison cf. http://blog.alexis-hassler.com/2011/01/junit-runner-pour-cdi-weld.html @RunWith @Inject
  15. 15. JPA Conteneur JPA Persistence.createEntityManagerFactory(...) .createEntityManager()
  16. 16. JMS Conteneur autonome new ActiveMQConnectionFactory( "vm://localhost?broker.persistent=false");
  17. 17. HTTP / Servlet / JSP / ... Conteneur autonome new ServletTester() new HttpTester()
  18. 18. ✔ EJB / OpenEJB
  19. 19. Problème 1 conteneur par technologie – Pas de mode embarqué universel Mode remote + Maven – pas dans le cycle de vie standard Configurations spécifiques
  20. 20. JavaEE JAX-WS JAX-RS JPA Servlet EJB JNDI JSP CDI JMS JSF
  21. 21. JavaEE JMS JAX-RS Transaction EJB Servlet CDI JPA JSF Bean Validation
  22. 22. Tester les composants, pas uniquement les classes, pas toute l'application
  23. 23. Mettre les tests dans le conteneur plutôt que gérer le conteneur dans les tests
  24. 24. Structure d'un test @RunWith(Arquillian.class) @Deployment @EJB, @Inject, @Resource @Test
  25. 25. ✔ EJB / OpenEJB
  26. 26. Conteneurs JavaEE CDI – JBoss AS, – Weld SE, – GlassFish, – Weld EE, – Websphere AS – OpenWebBeans Web EJB – Jetty, – Apache OpenEJB – Tomcat
  27. 27. Conteneurs DeployableContainer ShrinkWrap Arquillian Conteneur Test Case junit-container JUnit
  28. 28. Conteneurs Classpath Profil maven
  29. 29. ✔ EJB / Glassfish Embedded ✔ CDI / Glassfish Embedded ✔ CDI / Weld SE
  30. 30. Conteneurs Remote Managed Embedded
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. ✔ EJB / JBoss AS 7 managed ✔ EJB / JBoss AS 7 remote
  36. 36. Architecture DeployableContainer ShrinkWrap Arquillian Conteneur Test Case junit-container JUnit
  37. 37. Protocole Servlet ShrinkWrap.create(WebArchive.class) .addClasses(...); Web Archive JUnit Arquillian Test case Arquillian Servlet
  38. 38. Protocole Servlet 3.0 ShrinkWrap.create(JavaArchive.class) .addClasses(...); Web Archive JUnit Arquillian Test case Arquillian Servlet
  39. 39. Protocole Servlet 2.5 ShrinkWrap.create(JavaArchive.class) .addClasses(...); Arquillian ear Java Archive JUnit Arquillian Test case Arquillian war Arquillian Servlet
  40. 40. 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
  41. 41. Protocole JMX-AS7 ShrinkWrap.create(XxxArchive.class) .addClasses(...); JBoss AS 7 Any Archive JUnit Arquillian Test case Arquillian Service Arquillian MBean
  42. 42. ✔ EJB / deploymentExportPath
  43. 43. as-client Web, JAX-RS, JAX-WS, RMI, EJB remote,... Web Archive JUnit Arquillian Test case
  44. 44. as-client @ArquillianResource(MyServlet.class) URL baseURL ; @Deployment(testable=false) public static Archive createDeployment() { ... } @Test @RunAsClient private void shouldDoX() { ... }
  45. 45. as-client Utilisable pour du test fonctionnel – selenium, htmlunit, httpunit,...
  46. 46. Drone Intégration sélénium @RunWith(Arquillian.class) public class BasicClientTest { @Drone DefaultSelenium browser; @Test public void testLoginAndLogout() { browser.open(deploymentUrl + "home.jsp"); ... } }
  47. 47. ✔ JAX-RS / JBoss AS 7 managed
  48. 48. Arquillian Test d'intégration In-container As-client Multi-conteneurs
  49. 49. Références http://jboss.org/arquillian http://github.com/arquillian http://github.com/hasalex/arquillian-demo
  50. 50. Lundi 3 octobre 17h00

×