Ir al contenido principal
Versión: 6.0

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 →

La JVM proporciona la interfaz java.time.Clock que se utiliza para generar Instants. Cuando tenemos código que depende del tiempo, podemos usar un Clock para generar los valores, en lugar de usar 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:kotest-extensions en tu build. Busca la última versión en Maven Central aquí.

nota

Desde Kotest 6.0, todas las extensiones se publican bajo el grupo io.kotest, con un ciclo de versiones vinculado a las versiones principales de Kotest.

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.