Oyentes de instante actual
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Oyentes de instante actual
A veces querrás usar las funciones estáticas now de las clases java.time por diversos motivos, como establecer la fecha de creación de una entidad
data class MyEntity(creationDate: LocalDateTime = LocalDateTime.now()).
¿Pero qué hacer cuando necesitas probar ese valor? ¡now será diferente cada vez que lo invoques!
Para esto, Kotest proporciona las funciones ConstantNowListener y withConstantNow.
Al ejecutar tu código, tu now siempre será el valor que quieres verificar.
val foreverNow = LocalDateTime.now()
withConstantNow(foreverNow) {
LocalDateTime.now() shouldBe foreverNow
delay(10) // Code is taking a small amount of time to execute, but `now` changed!
LocalDateTime.now() shouldBe foreverNow
}
O, con un listener para todas las pruebas:
override fun listeners() = listOf(
ConstantNowTestListener(foreverNow)
)
withContantNow y ConstantNowTestListener son muy sensibles a condiciones de carrera. Al usarlos, se simula el método estático now que es global para toda la instancia JVM.
Si los utilizas ejecutando pruebas en paralelo, los resultados pueden ser inconsistentes.