Configuración
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Kotest ofrece la posibilidad de especificar opciones de configuración al ejecutar pruebas de propiedades. Esto se consigue pasando una instancia de PropTestConfig a los métodos de prueba.
Por ejemplo:
class PropertyExample: StringSpec({
"String size" {
forAll<String, String>(PropTestConfig(options here...)) { a,b ->
(a + b).length == a.length + b.length
}
}
})
Semilla
Una opción de configuración común es especificar la semilla utilizada por el generador aleatorio. Esto resulta útil cuando deseas repetir los mismos valores en cada ejecución del test. Puedes necesitarlo al detectar un fallo, para garantizar que ese conjunto específico de valores siga ejecutándose en el futuro como prueba de regresión.
Para detalles completos sobre el uso de semillas, consulta aquí.
Fallos mínimos
Por defecto, Kotest no tolera ningún fallo. Si deseas ejecutar pruebas no deterministas múltiples veces y aceptar un pequeño número de fallos, puedes especificarlo en la configuración.
class PropertyExample: StringSpec({
"some flakey test" {
forAll<String, String>(PropTestConfig(maxFailure = 3)) { a,b ->
// max of 3 inputs can fail
}
}
})
PropTestListener
En ocasiones, durante las pruebas de propiedades, es necesario realizar tareas de configuración y limpieza en cada iteración. Para ello, puedes registrar un PropTestListener mediante PropTestConfig.
class PropertyExample: StringSpec({
"some property test which require setup and tear down in each iteration" {
forAll<String, String>(PropTestConfig(listeners = listOf(MyPropTestListener))) { a,b ->
// some assertion
}
}
})