Ir al contenido principal
Versión: 5.8.x

Ejemplos de Extensiones

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

Listener de Salida del Sistema

Un ejemplo real de extensión es NoSystemOutListener, incluido en Kotest. Esta extensión lanza un error si se escribe cualquier salida en la salida estándar.

class MyTestSpec : DescribeSpec({

listener(NoSystemOutListener)

describe("All these tests should not write to standard out") {
it("silence in the court") {
println("boom") // failure
}
}
})

Listener de Temporizador

Otro ejemplo sería si quisiéramos registrar el tiempo que tarda cada caso de prueba. Podemos hacerlo usando las funciones beforeTest y afterTest de la siguiente manera:

object TimerListener : BeforeTestListener, AfterTestListener {

var started = 0L

override fun beforeTest(testCase: TestCase): Unit {
started = System.currentTimeMillis()
}

override fun afterTest(testCase: TestCase, result: TestResult): Unit {
println("Duration of ${testCase.descriptor} = " + (System.currentTimeMillis() - started))
}
}

Podemos registrarlo así:

class MyTestClass : FunSpec({
extensions(TimerListener)
// tests here
})

O podríamos registrarlo para todo el proyecto:

object MyConfig : AbstractProjectConfig() {
override fun extensions(): List<Extension> = listOf(TimerListener)
}