WireMock
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:kotest-extensions-wiremock:${kotestVersion}
Desde Kotest 6.0, todas las extensiones se publican nuevamente bajo el grupo io.kotest, con una cadencia de versiones vinculada a
los lanzamientos principales de Kotest.
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)
extension(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)
extension(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.