Diferencia entre revisiones de «Restfuse»

De Dos Ideas.
Saltar a: navegación, buscar
(Página creada con 'Restfuse es una extensión de JUnit que permite realizar pruebas sobre servicios REST (pueden leer sobre crear servicios REST con Spring). == Configuración ==…')
 
Línea 2: Línea 2:
  
 
== Configuración ==
 
== Configuración ==
Usando [[Apache Maven]], basta con agregar en el POM:  
+
Usando [[Maven]], basta con agregar en el POM:  
 
<code xml>
 
<code xml>
 
  <dependency>
 
  <dependency>
Línea 36: Línea 36:
 
</code>
 
</code>
  
 +
== Test de servicio REST con seguridad ==
 +
Supongamos el mismo servicio anterior, pero esta vez necesita pasar por una autenticación (por ejemplo, el servicio está segurizado usando [[Spring Security]]).
 +
 +
Supongamos entonces el usuario "zim" con la contraseña "irken". Para realizar el test, le informamos a [[Restfuse]] los datos para autenticarse previo a realizar el test.
 +
 +
<code java5>
 +
@RunWith(HttpJUnitRunner.class)
 +
public class RestFuseTest {
 +
 +
    @Rule
 +
    public Destination destination = new Destination("http://localhost:8084/miapp", authentications = {
 +
        @Authentication(user = "zim", password = "irken", type = AuthenticationType.BASIC)
 +
    })
 +
    @Context
 +
    private Response response; //se inyecta para cada request realizado
 +
 +
    @HttpTest(method = Method.GET, path = "/services/persona/id/123")
 +
    public void buscarPersona_idExistente_devuelveLaPersona() {
 +
        String respuesta = response.getBody(String.class);
 +
        System.out.println(respuesta); //imprime la persona en JSON
 +
        assertOk(response); //comprueba que la respuesta haya sido HTTP status 200.
 +
    }
 +
}
 +
</code>
  
 
== Ver también ==
 
== Ver también ==
 
* [[REST con Spring]]
 
* [[REST con Spring]]
 
* [http://restfuse.com/ Web oficial de Restfuse]
 
* [http://restfuse.com/ Web oficial de Restfuse]

Revisión del 14:10 5 dic 2011

Restfuse es una extensión de JUnit que permite realizar pruebas sobre servicios REST (pueden leer sobre crear servicios REST con Spring).

Configuración

Usando Maven, basta con agregar en el POM:

<dependency>
    <groupId>com.restfuse</groupId>
    <artifactId>com.eclipsesource.restfuse</artifactId>
    <version>1.0.0</version>
    <scope>test</scope>
</dependency>

Test de servicio REST sin seguridad

Supongamos un servicio REST sin seguridad, que se invoca en:

http://localhost:8084/miapp/services/persona/id/{id}

Este servicio devuelve una Persona en formato JSON con id {id}. Vamos a crear un test que busque la persona 123:

@RunWith(HttpJUnitRunner.class) public class RestFuseTest {

   @Rule
   public Destination destination = new Destination("http://localhost:8084/miapp");
   @Context
   private Response response; //se inyecta para cada request realizado
   @HttpTest(method = Method.GET, path = "/services/persona/id/123")
   public void buscarPersona_idExistente_devuelveLaPersona() {
       String respuesta = response.getBody(String.class);
       System.out.println(respuesta); //imprime la persona en JSON
       assertOk(response); //comprueba que la respuesta haya sido HTTP status 200.
   }

}

Test de servicio REST con seguridad

Supongamos el mismo servicio anterior, pero esta vez necesita pasar por una autenticación (por ejemplo, el servicio está segurizado usando Spring Security).

Supongamos entonces el usuario "zim" con la contraseña "irken". Para realizar el test, le informamos a Restfuse los datos para autenticarse previo a realizar el test.

@RunWith(HttpJUnitRunner.class) public class RestFuseTest {

   @Rule
   public Destination destination = new Destination("http://localhost:8084/miapp", authentications = {
       @Authentication(user = "zim", password = "irken", type = AuthenticationType.BASIC)
   })
   @Context
   private Response response; //se inyecta para cada request realizado
   @HttpTest(method = Method.GET, path = "/services/persona/id/123")
   public void buscarPersona_idExistente_devuelveLaPersona() {
       String respuesta = response.getBody(String.class);
       System.out.println(respuesta); //imprime la persona en JSON
       assertOk(response); //comprueba que la respuesta haya sido HTTP status 200.
   }

}

Ver también