Ir al contenido principal
Versión: 6.1

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 de datos. Cada nivel de anidamiento adicional creará otra capa en la salida de pruebas, mostrando el producto cartesiano de todas las entradas. Ten en cuenta que, aunque StringSpec admite withXXX, esta especificación no es compatible con Nested Data Tests.

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")

withContexts(services) { service ->
withTests(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")

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

ejemplo de salida de prueba de datos