Diferencia entre revisiones de «Restfuse»
(→Test de servicio REST con seguridad) |
|||
Línea 46: | Línea 46: | ||
@Rule | @Rule | ||
− | public Destination destination = new Destination("http://localhost:8084/miapp" | + | public Destination destination = new Destination("http://localhost:8084/miapp"); |
− | |||
− | |||
@Context | @Context | ||
private Response response; //se inyecta para cada request realizado | private Response response; //se inyecta para cada request realizado | ||
− | @HttpTest(method = Method.GET, path = "/services/persona/id/123") | + | @HttpTest(method = Method.GET, path = "/services/persona/id/123", authentications = { |
+ | @Authentication(user = "zim", password = "irken", type = AuthenticationType.BASIC) | ||
+ | }) | ||
public void buscarPersona_idExistente_devuelveLaPersona() { | public void buscarPersona_idExistente_devuelveLaPersona() { | ||
String respuesta = response.getBody(String.class); | String respuesta = response.getBody(String.class); |
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. }
}