Ir al contenido principal
Versión: 5.9.x

Reloj de Pruebas

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

Última Versión

La JVM proporciona la interfaz java.time.Clock que se utiliza para generar instancias de Instant. Cuando tenemos código que depende del tiempo, podemos usar un Clock para generar los valores, en lugar de utilizar métodos como Instant.now() o System.currentTimeMillis().

Así, en las pruebas podemos proporcionar un reloj fijo o controlable que evita problemas donde el tiempo cambia en cada ejecución de prueba. En tu código real, proporcionas una instancia de Clock.systemUTC() o similar.

nota

Se requiere el siguiente módulo: io.kotest.extensions:kotest-extensions-clock en tu build. Busca la última versión en Maven Central aquí.

Para utilizarlo, creamos una instancia de TestClock pasando un instant y un desplazamiento de zona horaria (zone offset).

val timestamp = Instant.ofEpochMilli(1234)
val clock = TestClock(timestamp, ZoneOffset.UTC)

Podemos controlar el reloj mediante plus y minus que aceptan duraciones, por ejemplo:

clock.plus(6.minutes)

Ten en cuenta que el reloj es mutable y su estado interno cambia al usar plus o minus.