WireMock es una herramienta para simular API basadas en HTTP que se ejecuta en las pruebas unitarias, en el escritorio o en el entorno de prueba. También podemos decir que es un simulador de APIs basadas en HTTP, considerado una herramienta de virtualización de servicios o un servidor simulado . Le permite mantenerse productivo cuando una API de la que depende no existe y no está completa o es costosa de acceder. Admite la prueba de casos Edge y modos de falla. Es rápido, por lo que reduce significativamente el tiempo de construcción. En términos simples, Wiremock es una configuración simulada para pruebas de integración . Se utiliza principalmente durante el desarrollo y, de manera más significativa, durante las pruebas de integración, mientras que un sistema o servicio se comunica con una o varias dependencias/servicios externos o internos.
Lea más sobre WireMock en el siguiente artículo: Introducción a WireMock
Una de las características más importantes de WireMock es Stubbing . Stubbing es la función central de WireMock y tiene la capacidad de devolver respuestas HTTP enlatadas para criterios de coincidencia de requests. Entonces, en este artículo, veremos cómo funciona Stubbing con asignaciones JSON en WireMock.
requisitos previos:
- Consulte este artículo e instale WireMock en su máquina local: ¿Cómo descargar e instalar WireMock?
- Consulte este artículo e instale Postman en su máquina local: ¿Cómo descargar e instalar Postman en Windows?
- Cree su primer punto final de API simulado con WireMock
1. Stubbing básico para la solicitud GET
Abra su cartero y envíe una solicitud POST a la siguiente URL
http://<host>:<port>/__admin/mappings
con el siguiente cuerpo de solicitud JSON
{ "request": { "method": "GET", "url": "put your url as per your requirement" }, "response": { "status": 200, "body": "put your body here" } }
Ejemplo
Por ejemplo, en este artículo nuestra URL es
URL:
http://localhost:8080/__admin/mappings
Y el cuerpo de la solicitud JSON es
Cuerpo de la solicitud:
{ "request": { "url": "/gfg/user1", "method": "GET" }, "response": { "status": 200, "body": "Welcome to GeeksforGeeks!" } }
Haga clic en el botón Enviar ahora y en la Respuesta, puede ver el siguiente Cuerpo de respuesta con el código de estado 201 Creado.
Cuerpo de respuesta:
{ "id": "609c2585-47f9-456e-b842-51db4411cbb7", "request": { "url": "/gfg/user1", "method": "GET" }, "response": { "status": 200, "body": "Welcome to GeeksforGeeks!" }, "uuid": "609c2585-47f9-456e-b842-51db4411cbb7" }
Consulte la imagen a continuación si está atrapado en algún lugar
Ahora, probemos nuestra API Stubbed. Vuelva a abrir una nueva pestaña en Postman y envíe una solicitud GET a la siguiente URL
http://localhost:8080/gfg/user1
Y obtendrá la siguiente respuesta en el cuerpo de Respuesta.
Welcome to GeeksforGeeks!
Consulte la imagen a continuación si está atrapado en algún lugar
En caso de que haya alcanzado el punto final incorrecto, obtendrá una respuesta similar a esta con el código de error 404 Not Found. Supongamos que en lugar de llegar al punto final http://localhost:8080/gfg/user1, hemos llegado al siguiente punto final http://localhost:8080/gfg/user2, entonces obtendremos una respuesta como esta
Y también puede ver lo mismo en su consola WireMock
2. Stubbing básico para la solicitud POST
Similar a la solicitud GET, simplemente cambie los valores de «solicitud» -> «método» a «POST» en el cuerpo de la solicitud JSON y listo. Consulte el siguiente código JSON.
{ "request": { "method": "GET", "url": "put your url as per your requirement" }, "response": { "status": 200, "body": "put your body here" } }
3. Envío de encabezados de respuesta junto con stub
También podemos enviar un encabezado de respuesta junto con el Stub. Consulte el siguiente código JSON para conocer la sintaxis.
{ "request": { "method": "GET", "url": "put your url as per your requirement" }, "response": { "status": 200, "body": "put your body here", "headers": { "Content-Type": "text/plain", "Cache-Control": "no-cache" } } }
4. Configuración del mensaje de estado de respuesta
Además del código de estado, también se puede configurar opcionalmente el mensaje de estado. Consulte el siguiente código JSON para conocer la sintaxis.
{ "request": { "method": "GET", "url": "put your url as per your requirement" }, "response": { "status": 200, "statusMessage": "put your response status message here" } }
5. Guardar talonarios
Las asignaciones de código auxiliar que se han creado se pueden conservar en el directorio de asignaciones mediante la publicación de una solicitud con un cuerpo vacío en la siguiente URL
http://<host>:<port>/__admin/mappings/save
6. Edición de talones
Las asignaciones de stub existentes se pueden modificar, siempre que se les haya asignado una ID. Para hacerlo envía una solicitud PUT a la siguiente URL
http://<host>:<port>/__admin/mappings/{id}
con el siguiente cuerpo de solicitud JSON
{ "request": { "method": "GET", "url": "put your modified url as per your requirement" }, "response": { "status": 200, "body": "put your modified body here" } }
Consulte la imagen a continuación si está atrapado en algún lugar
7. Eliminación de talones
El código auxiliar se puede eliminar a través de la API HTTP mediante la solicitud DELETE a la siguiente URL
http://<host>:<port>/__admin/mappings/{id}
donde id es el UUID de la asignación de código auxiliar, que se encuentra en su campo de id.
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA