10

Click here to load reader

Testde service rest avec Jersey dans un contexte Guice

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Testde service rest avec Jersey dans un contexte Guice

Testabilité de service REST Jersey dans un contexte Guice

Page 2: Testde service rest avec Jersey dans un contexte Guice

Comment tester REST ?

Lancer un serveur léger qui embarque la ressource, et pointer dessus avec un client type HttpClient

=> Nécessite un peu de code

Page 3: Testde service rest avec Jersey dans un contexte Guice

Qu'est ce que Jersey ?

• Implémentation de JAX-RS

• 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.

Page 4: Testde service rest avec Jersey dans un contexte Guice

JerseyTestUne classe à étendre, une dépendance à importer <dependency> <groupId>com.sun.jersey.jersey-test-framework</groupId> <artifactId>jersey-test-framework-grizzly</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency>

Page 5: Testde service rest avec Jersey dans un contexte Guice

Conf ?

Code java équivalent au web.xml

@Overrideprotected AppDescriptor configure() {return new WebAppDescriptor.Builder() .machin(...) .truc(...) .build();}

Page 6: Testde service rest avec Jersey dans un contexte Guice

Guice

• Injection de dépendance made in Google• Fonctionne par annotation et configure le module

dans une application web (servlet)

• Problème : Accéder à son injector pour récupérer les objets dedans :(

Page 7: Testde service rest avec Jersey dans un contexte Guice

Démo 1

Hello mode texteEnjeu : configurer guice pour le test (accéder aux services à mocker)

https://github.com/nfrancois/PocJerseyGuiceAppEngine

Page 8: Testde service rest avec Jersey dans un contexte Guice

Démo 2

Evoluons vers JAX-BEnjeu : Prendre en compte le marshal/unmarshal

https://github.com/nfrancois/PocJerseyJaxBGuiceAppEngine

Page 9: Testde service rest avec Jersey dans un contexte Guice

Démo 3

Ajoutons du JsonEnjeu : bon dialogue json

https://github.com/nfrancois/PocJerseyJaxBJsonGuiceAppEngine

Page 10: Testde service rest avec Jersey dans un contexte Guice

Plus d'infos

http://www.insideit.fr/post/2011/04/02/Du-Jersey%2C-du-Guice-et-de-l-App-Engine-1/3

http://www.insideit.fr/post/2011/04/08/Du-Jersey%2C-du-Guice-et-de-l-App-Engine-2/3

http://www.insideit.fr/post/2011/04/16/Du-Jersey%2C-du-Guice-et-de-l-App-Engine-3/3