WireMock es un simulador de APIS REST HTTP, también podemos decir un REST API Mock Server.

WireMock puede usarse por ejemplo para avanzar en un desarrollo sobre una arquitectura de microservicios mientras un API no existe.

Soporte el test de los casos Edge y los errores que el API no debería generar.

Entre sus principales características tenemos:

  • Stub de la respuesta HTTP macheable a nivel de patrones en la URL, header y body.
  • Verificación de la petición
  • Ejecución en Test Unitarios, como proceso standalone y como aplicación Web
  • Configurable a través de API Java o con JSON.
  • Grabación y reejecución de stubs: a partir de su UI podemos grabar el resultado de ejecución de un API para generar un stub (http://wiremock.org/docs/record-playback/)

  • Inyección de errores
  • Configurable a diferentes niveles: tiempos de delay, proxy condicional,…

Además está integrado con diferentes frameworks y tecnologías como Android, Junit o Spring Boot:

Ejecución con Junit: http://wiremock.org/docs/junit-rule/

Ejecución con Spring Boot: https://cloud.spring.io/spring-cloud-contract/reference/html/project-features.html#features-wiremock

En este ejemplo se ve claramente cómo configurar un server WireMock y cómo hacer un stub que devuelva el body que queremos:

Ejecución standalone: http://wiremock.org/docs/running-standalone/

Una herramienta muy útil!!!