¿Cómo realizar pruebas en nuestros servicios web con Jersey?

¡Hola!

Jersey nos ofrece una herramienta para hacer nuestras pruebas a los servicios web que realicemos con su Framework, esto nos ayuda a casos en donde utilicemos por ejemplo un desarrollo basado en pruebas, donde realizamos primero las pruebas unitarias y de integración de los componentes principales de la aplicación que queremos desarrollar, y luego si, el desarrollo de las funcionalidades.

Jersey Test Framework admite diferentes implementaciones, las cuales podemos escoger a nuestro gusto, cada una de ellas con sus características y lo más importante, que dependiendo de la implementación a escoger se necesita de una dependencia distinta.

En esta ocasión voy a escoger la implementación de un servidor Grizzly y a partir de aquí colocaré las dependencias en Maven y Gradle.


testCompile 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.26'

view raw

build.gradle

hosted with ❤ by GitHub


<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-grizzly2</artifactId>
<version>2.26</version>
<scope>test</scope>
</dependency>

view raw

pom.xml

hosted with ❤ by GitHub

Vamos a tener en cuenta que este ejercicio se va a basar en el proyecto que se trabajó en el blog pasado (Ver aquí), si no te has visto esa entrada, te recomiendo que le des un vistazo.

Lo primero que debemos hacer es crear una clase que herede de JerseyTest, esta clase nos proporciona los métodos necesarios para hacer configuraciones y pruebas a nuestros recursos.


public class MyResourceTest extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig(MyResource.class);
}
@Test
public void testGetIt() {
String response = target().path("myresource").request().get(String.class);
Assert.assertEquals("Got it!", response);
}
}

Como podemos observar, he creado una clase llamada MyResourceTest que extiende de la clase JerseyTest, a partir de aquí configuro el servidor sobre-escribiendo el método configure donde retorno una nueva instancia de la clase ResourceConfig que como muy bien conocemos, nos ayuda a identificar cuales son los componentes de nuestra aplicación que van a atender las peticiones HTTP. En este caso en el constructor de esa clase pasamos el recurso que vamos a probar (MyResource) y con esto, ya tenemos configurado para que cuando se realize la prueba se pueda probar dicho recurso.

También creo el método de prueba llamado testGetIt para hacer la petición HTTP al método correspondiente y obtener un resultado, en este caso eso está en la linea 10 del código, uso el método target para obtener la URI donde se va a montar el servicio web de prueba, añado el método path para indicar el recurso que voy a probar, luego el método request para armar la petición y por último utilizó el método get para indicar que la petición HTTP es de tipo GET, también dentro de ese método coloco el tipo de dato con el que quiero parsear la respuesta, que en este caso es String.

Al final de todo simplemente se evalúa a través de un assertEqual si la respuesta de la petición es lo que esperas y listo, ya tienes tu primera prueba con Jersey Test Framework.

Si quieres ver el código completo puedes acceder al siguiente link.

 

Publicado por

Gustavo Pacheco

Senior Software Engineer

Deja un comentario