TestTimeSource

Common
JVM
JS
Native
1.9
class TestTimeSource : AbstractLongTimeSource
(source)

A time source that has programmatically updatable readings. It is useful as a predictable source of time in tests.

The current reading value can be advanced by the specified duration amount with the operator plusAssign:

val timeSource = TestTimeSource()
timeSource += 10.seconds

Time marks returned by this time source can be compared for difference with other time marks obtained from the same time source.

Implementation note: the current reading value is stored as a Long number of nanoseconds, thus it's capable to represent a time range of approximately ±292 years. Should the reading value overflow as the result of plusAssign operation, an IllegalStateException is thrown.

Constructors

Common
JVM
JS
Native
1.0

<init>

A time source that has programmatically updatable readings. It is useful as a predictable source of time in tests.

TestTimeSource()

Functions

Common
JVM
JS
Native
1.0

plusAssign

Advances the current reading value of this time source by the specified duration.

operator fun plusAssign(duration: Duration)
Common
JVM
JS
Native
1.0

read

This protected method should be overridden to return the current reading of the time source expressed as a Long number in the unit specified by the unit property.

fun read(): Long

Extension Functions

Common
JVM
JS
Native
1.9

measureTime

Executes the given function block and returns the duration of elapsed time interval.

fun TimeSource.measureTime(block: () -> Unit): Duration
Common
JVM
JS
Native
1.9

measureTimedValue

Executes the given function block and returns an instance of TimedValue class, containing both the result of function execution and the duration of elapsed time interval.

fun <T> TimeSource.measureTimedValue(
    block: () -> T
): TimedValue<T>