Testabilité de service REST Jersey dans un contexte Guice
Comment tester REST ? <ul><li>Lancer un serveur léger qui embarque la ressource, et pointer dessus avec un client type Htt...
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, m...
JerseyTest <ul><li>Une classe à étendre, une dépendance à importer </li></ul><ul><li>         <dependency> </li></ul><ul><...
Conf ? <ul><li>Code java équivalent au web.xml </li></ul><ul><li>@Override </li></ul><ul><li>protected AppDescriptor confi...
Guice <ul><ul><li>Injection de dépendance made in Google </li></ul></ul><ul><ul><li>Fonctionne par annotation et configure...
Démo 1 <ul><li>Hello mode texte </li></ul><ul><li>Enjeu :   configurer guice pour le test (accéder aux services à mocker) ...
Démo 2 <ul><li>Evoluons vers JAX-B </li></ul><ul><li>Enjeu :   Prendre en compte le marshal/unmarshal </li></ul><ul><li>ht...
Démo 3 <ul><li>Ajoutons du Json </li></ul><ul><li>Enjeu :   bon dialogue json  </li></ul><ul><li>https://github.com/nfranc...
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...
Prochain SlideShare
Chargement dans…5
×

Testde service rest avec Jersey dans un contexte Guice

967 vues

Publié le

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

Publié dans : Technologie, Business
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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>

×