Ir al contenido principal
Versión: 5.4.x

WireMock

[Traducción Beta No Oficial]

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

WireMock

WireMock es una biblioteca que permite simular respuestas HTTP configurando patrones coincidentes para URL, cabeceras, contenido del cuerpo, etc.

Kotest proporciona el módulo kotest-extensions-wiremock para integrarse con WireMock.

Para comenzar, añade la siguiente dependencia a tu proyecto:

io.kotest.extensions:kotest-extensions-wiremock:{version}

Al incluir esta dependencia en el classpath, tendrás disponible WireMockListener. WireMockListener gestiona el ciclo de vida de un WireMockServer durante tus pruebas.

Por ejemplo:


class SomeTest : FunSpec({
val customerServiceServer = WireMockServer(9000)
listener(WireMockListener(customerServiceServer, ListenerMode.PER_SPEC))

test("let me get customer information") {
customerServiceServer.stubFor(
WireMock.get(WireMock.urlEqualTo("/customers/123"))
.willReturn(WireMock.ok())
)

val connection = URL("http://localhost:9000/customers/123").openConnection() as HttpURLConnection
connection.responseCode shouldBe 200
}

// ------------OTHER TEST BELOW ----------------
})

En este ejemplo hemos creado una instancia de WireMockListener que inicia un WireMockServer antes de ejecutar las pruebas de la especificación y lo detiene al completar todas las pruebas.

Puedes usar WireMockServer.perSpec(customerServiceServer) para lograr el mismo resultado.


class SomeTest : FunSpec({
val customerServiceServer = WireMockServer(9000)
listener(WireMockListener(customerServiceServer, ListenerMode.PER_TEST))

test("let me get customer information") {
customerServiceServer.stubFor(
WireMock.get(WireMock.urlEqualTo("/customers/123"))
.willReturn(WireMock.ok())
)

val connection = URL("http://localhost:9000/customers/123").openConnection() as HttpURLConnection
connection.responseCode shouldBe 200
}

// ------------OTHER TEST BELOW ----------------
})

En este ejemplo hemos creado una instancia de WireMockListener que inicia un WireMockServer antes de cada prueba de la especificación y lo detiene tras completar cada prueba. Puedes usar WireMockServer.perTest(customerServiceServer) para lograr el mismo resultado.