Diferencia entre revisiones de «Restfuse»
(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 ==…') |
(→Test de servicio REST con seguridad) |
||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 2: | Línea 2: | ||
== Configuración == | == Configuración == | ||
− | Usando [[ | + | 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"); | ||
+ | @Context | ||
+ | private Response response; //se inyecta para cada request realizado | ||
+ | |||
+ | @HttpTest(method = Method.GET, path = "/services/persona/id/123", authentications = { | ||
+ | @Authentication(user = "zim", password = "irken", type = AuthenticationType.BASIC) | ||
+ | }) | ||
+ | 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 actual 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).
Contenido
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"); @Context private Response response; //se inyecta para cada request realizado
@HttpTest(method = Method.GET, path = "/services/persona/id/123", authentications = { @Authentication(user = "zim", password = "irken", type = AuthenticationType.BASIC) }) 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. }
}