Testde service rest avec Jersey dans un contexte Guice

874 views

Published on

Présentation que j'ai fait lors du BOF de Sfeir de mai 2011

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
874
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Testde service rest avec Jersey dans un contexte Guice

  1. 1. Testabilité de service REST Jersey dans un contexte Guice
  2. 2. Comment tester REST ? <ul><li>Lancer un serveur léger qui embarque la ressource, et pointer dessus avec un client type HttpClient </li></ul><ul><li>=> Nécessite un peu de code </li></ul>
  3. 3. Qu'est ce que Jersey ? <ul><ul><li>Implémentation de JAX-RS </li></ul></ul><ul><ul><li>JAX-RS définit la partie serveur, mais pas la partie cliente    => Chaque implémentation de JAX-RS définit sa propre façon de faciliter les tests. </li></ul></ul>
  4. 4. JerseyTest <ul><li>Une classe à étendre, une dépendance à importer </li></ul><ul><li>        <dependency> </li></ul><ul><li>            <groupId>com.sun.jersey.jersey-test-framework</groupId> </li></ul><ul><li>            <artifactId>jersey-test-framework-grizzly</artifactId> </li></ul><ul><li>            <version>${jersey.version}</version> </li></ul><ul><li>            <scope>test</scope> </li></ul><ul><li>        </dependency> </li></ul>
  5. 5. Conf ? <ul><li>Code java équivalent au web.xml </li></ul><ul><li>@Override </li></ul><ul><li>protected AppDescriptor configure() { </li></ul><ul><li>return new WebAppDescriptor.Builder() </li></ul><ul><li>        .machin(...) </li></ul><ul><li>        .truc(...) </li></ul><ul><li>        .build(); </li></ul><ul><li>} </li></ul>
  6. 6. Guice <ul><ul><li>Injection de dépendance made in Google </li></ul></ul><ul><ul><li>Fonctionne par annotation et configure le module dans une application web (servlet) </li></ul></ul><ul><ul><li>Problème : Accéder à son injector pour récupérer les objets dedans :( </li></ul></ul>
  7. 7. Démo 1 <ul><li>Hello mode texte </li></ul><ul><li>Enjeu : configurer guice pour le test (accéder aux services à mocker) </li></ul><ul><li>https://github.com/nfrancois/PocJerseyGuiceAppEngine </li></ul>
  8. 8. Démo 2 <ul><li>Evoluons vers JAX-B </li></ul><ul><li>Enjeu : Prendre en compte le marshal/unmarshal </li></ul><ul><li>https://github.com/nfrancois/PocJerseyJaxBGuiceAppEngine </li></ul>
  9. 9. Démo 3 <ul><li>Ajoutons du Json </li></ul><ul><li>Enjeu : bon dialogue json  </li></ul><ul><li>https://github.com/nfrancois/PocJerseyJaxBJsonGuiceAppEngine </li></ul>
  10. 10. Plus d'infos <ul><li>http://www.insideit.fr/post/2011/04/02/Du-Jersey%2C-du-Guice-et-de-l-App-Engine-1/3 </li></ul><ul><li>http://www.insideit.fr/post/2011/04/08/Du-Jersey%2C-du-Guice-et-de-l-App-Engine-2/3 </li></ul><ul><li>http://www.insideit.fr/post/2011/04/16/Du-Jersey%2C-du-Guice-et-de-l-App-Engine-3/3 </li></ul>

×