Pruebas condicionales con banderas de habilitación
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Kotest permite desactivar pruebas configurando una bandera en el test.
Estas configuraciones son muy similares: enabled, enabledIf y enabledOrReasonIf.
Habilitado
Puedes desactivar un caso de prueba simplemente estableciendo el parámetro de configuración enabled en false.
Si buscas un equivalente al @Ignore de JUnit, esta es tu opción.
"should do something".config(enabled = false) {
// test here
}
Puedes usar este mismo mecanismo para ejecutar pruebas solo bajo ciertas condiciones.
Por ejemplo, podrías ejecutar ciertos tests solo en sistemas Linux usando
SystemUtils.IS_OS_LINUX de Apache Commons Lang.
"should do something".config(enabled = IS_OS_LINUX) {
// test here
}
Habilitado si
Si necesitas usar una función que se evalúa cada vez que se invoca el test, puedes utilizar enabledIf.
Esta función tiene la firma (TestCase) -> Boolean, por lo que tienes acceso al test en tiempo de ejecución
al evaluar si una prueba debe habilitarse o deshabilitarse.
Por ejemplo, si quisiéramos desactivar todas las pruebas que comienzan con la palabra "peligro", pero solo cuando se ejecutan los viernes, podríamos hacer esto:
val disableDangerOnFridays: EnabledIf = { !(it.name.testName.startsWith("danger") && isFriday()) }
"danger Will Robinson".config(enabledIf = disableDangerOnFridays) {
// test here
}
"safe Will Robinson".config(enabledIf = disableDangerOnFridays) {
// test here
}
Habilitado o razón si
Existe una tercera variante llamada enabledOrReasonIf que permite devolver un motivo para la desactivación del test.
Tiene la firma (TestCase) -> Enabled, donde
Enabled es un tipo que puede contener una razón de omisión. Esta cadena de texto se incluye en los informes de pruebas.
Por ejemplo, podemos reescribir el caso anterior de 'peligro' así:
val disableDangerOnFridays: (TestCase) -> Enabled = {
if (it.name.testName.startsWith("danger") && isFriday())
Enabled.disabled("It's a friday, and we don't like danger!")
else
Enabled.enabled
}
"danger Will Robinson".config(enabledOrReasonIf = disableDangerOnFridays) {
// test here
}
"safe Will Robinson".config(enabledOrReasonIf = disableDangerOnFridays) {
// test here
}