Arquillian : Tester sur terre et dans les nuages

1 867 vues

Publié le

Présentation au LavaJUG (Clermont-Ferrand), le 13 septembre 2012

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 867
Sur SlideShare
0
Issues des intégrations
0
Intégrations
133
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Arquillian : Tester sur terre et dans les nuages

  1. 1. Testersur terre et dans les nuagesseptembre 2012 Alexis Hassler
  2. 2. @AlexisHasslerDéveloppeur, formateur JavaIndépendantContributeur occasionnel à ArquillianCo-leader du
  3. 3. Kesako ?
  4. 4. Tests dintégration JavaEETests CDI / JavaEE 6 JBoss Harness
  5. 5. Problèmes ?
  6. 6. TestsUnitaire Intégration
  7. 7. Test unitaire new mock
  8. 8. Test unitaire mock mock mockmock ClassToBeTested
  9. 9. Test dintégration JPA EJB EntityManager Other Bean JMSCDI QueueBean Sécurité Intercepteurs EjbToBeTested Sécurité Transaction Intercepteurs ...
  10. 10. Container JPA EJB EntityManager Other Bean JMSCDI QueueBean Sécurité Intercepteurs EjbToBeTested Sécurité Transaction Intercepteurs ...
  11. 11. Lifecycle Component ToBeTested JAX-RS EndpointTestCase
  12. 12. LifecycleCompile Test Package Integration Test
  13. 13. Solutions !
  14. 14. Conteneur
  15. 15. Conteneur Mode embarquéEJBContainer.createEJBContainer()Context.lookup(...)
  16. 16. Conteneur JMS JAX-RS Transaction EJBServlet CDI JPA JSF Bean Validation
  17. 17. Aucune référence augérer le conteneur dans les tests conteneur dans les tests
  18. 18. Runner JUnit Méthode  de test
  19. 19. Conteneur DeployableContainerArquillian Conteneur
  20. 20. Conteneur Websphere JBoss ASWeblogic GlassfishTomEE Resin Weld OpenWebBeans Jetty Tomcat OpenEJB
  21. 21. Mettre lestests dans le conteneur gérer le conteneur dans les tests plutôt que gérer le conteneur dans les tests
  22. 22. ConteneurRemote Managed Embedded
  23. 23. Runner JUnit Injection de dépendances Méthode de test
  24. 24. Tester les composants pas les classes isolées pas lapplication complète
  25. 25. addAsManifestResource
  26. 26. Runner JUnit Déploiement  du composant Injection de dépendances Méthode de test
  27. 27. @RunWith(Arquillian.class)@Deployment@EJB, @Inject, @Resource@Test
  28. 28. Conteneur embarquéDémarrage du conteneur (in-process) Déploiement de larchive Exécution locale du test Retrait de larchive Arrêt du conteneur
  29. 29. Conteneur géréDémarrage du conteneur (out-process) Déploiement de larchive Déploiement du service Arquillian Exécution du test dans le conteneur Retrait de larchive Arrêt du conteneur
  30. 30. Conteneur distant Conteneurpréalablement démarré Déploiement de larchive Déploiement du service Arquillian Exécution du test dans le conteneur Retrait de larchive
  31. 31. Comme client
  32. 32. As ClientWeb, JAX-RS, JAX-WS,RMI, EJB remote,... Web Archive JUnitArquillianTest case
  33. 33. As Client@ArquillianResource(MyServlet.class) URL servletURL ;           (testable=false)@Deploymentpublic static Archive createDeployment() {    ... }      @RunAsClient@Testprivate void shouldDoX() {    ... }
  34. 34. As ClientTest fonctionnel– Selenium– HtmlUnit– HttpUnit– ...
  35. 35. Avec des donnés
  36. 36. Injection@Resource(mappedName="jdbc/sample")DataSource ds; @PersistenceContext EntityManager em; @Resource UserTransaction tx;
  37. 37. Extensions Performance PersistenceSelenium BytemanJBehave Jacoco JSFUnit JUnit TestNG Spock
  38. 38. Persistence Extension@Transactional(TransactionMode.ROLLBACK)public class MyBeanTest
  39. 39. Persistence Extension Initialisation@UsingDataSet("users.yml") Vérification@ShouldMatchDataSet("expected-users.yml")
  40. 40. Dans Ton Cloud
  41. 41. Dans Ton IaaS WebsphereWeblogic JBoss AS Resin GlassfishTomEE Weld Jetty OpenWebBeans Tomcat OpenEJB
  42. 42. Dans Ton PaaS WebsphereWeblogic JBoss AS Cloudbees Resin OpenShift GlassfishTomEE Weld Jetty OpenWebBeans Tomcat OpenEJB
  43. 43. Conclusion
  44. 44. ArquillianTest dintégrationIn-container / As-clientMulti-conteneursExtensible
  45. 45. Référenceshttp://arquillian.orghttp://github.com/hasalex/arquillian-demohttp://slideshare.com/sewatech
  46. 46. @AlexisHasslerhttp://alexis-hassler.comalexis.hassler@sewatech.frhttp://sewatech.fr
  47. 47. ?

×