Pruebas de datos anidadas
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:

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
}
}
}
