Ir al contenido principal
Versión: 5.9.x

Pruebas de datos anidadas

[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 →

Las pruebas de datos de Kotest son extremadamente flexibles y permiten un anidamiento ilimitado de estructuras de pruebas. Cada nivel adicional de anidamiento creará otra capa en los resultados de las pruebas, proporcionando el producto cartesiano de todas las entradas.

Por ejemplo, en el siguiente fragmento de código tenemos dos niveles de anidamiento.

context("each service should support all http methods") {

val services = listOf(
"http://internal.foo",
"http://internal.bar",
"http://public.baz",
)

val methods = listOf("GET", "POST", "PUT")

withData(services) { service ->
withData(methods) { method ->
// test service against method
}
}

}

Esto generaría una salida en IntelliJ similar a:

ejemplo de salida de prueba de datos

Y aquí tenemos el mismo ejemplo, pero esta vez con un nombre de prueba personalizado en el segundo nivel:

context("each service should support all http methods") {

val services = listOf(
"http://internal.foo",
"http://internal.bar",
"http://public.baz",
)

val methods = listOf("GET", "POST", "PUT")

withData(services) { service ->
withData<String>({ "should support HTTP $it" }, methods) { method ->
// test service against method
}
}
}

ejemplo de salida de prueba de datos