Spec-Zone.ru › Kotlin 2

TestTimeSource

kotlin-stdlib/kotlin.time/TestTimeSource

Начиная с Kotlin: 1.9

class TestTimeSource : AbstractLongTimeSource

Источник времени с программно обновляемыми показаниями. Он удобен в качестве предсказуемого источника времени в тестах.

Текущее значение показаний можно увеличить на заданную длительность с помощью оператора plusAssign:

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

Метки времени, возвращаемые этим источником времени, можно сравнивать по разнице с другими метками времени, полученными от того же источника времени.

Примечание по реализации: текущее значение показаний хранится как число типа Long в наносекундах, поэтому он способен представлять диапазон времени приблизительно ±292 года. Если значение показаний переполнится в результате операции plusAssign, будет выброшено исключение IllegalStateException.

Примеры

import kotlin.test.Test
import kotlin.time.Duration.Companion.seconds
import kotlin.time.*

fun main() { 
   //sampleStart 
   val testSource = TestTimeSource()
val elapsed = testSource.measureTime {
    println("Pretending this function executes 10 seconds")
    testSource += 10.seconds
}
println("Time elapsed: ${elapsed.inWholeMilliseconds} milliseconds ($elapsed)") 
   //sampleEnd
}
import kotlin.test.Test
import kotlin.time.Duration.Companion.seconds
import kotlin.time.*

fun main() { 
   //sampleStart 
   val testSource = TestTimeSource()
val result = testSource.measureTimedValue {
    println("Pretending this function executes 10 seconds")
    testSource += 10.seconds
    42
}
println("Computed result: ${result.value}, time elapsed: ${result.duration}") 
   //sampleEnd
}

Конструкторы

TestTimeSource
constructor()

Свойства

unit

Начиная с Kotlin: 1.9

protected val unit: DurationUnit

Единица измерения, в которой выражаются показания этого источника времени.

Функции

asClock

Начиная с Kotlin: 2.3

@JvmName(name = "fromTimeSource")
fun TimeSource.asClock(origin: Instant): Clock

Создаёт Clock, который использует метку времени в момент создания, чтобы определить, как далеко текущий момент отстоит от начала отсчёта.

markNow

Начиная с Kotlin: 1.9

open override fun markNow(): ComparableTimeMark

Отмечает момент времени в этом источнике времени.

measureTime

Начиная с Kotlin: 1.9

inline fun TimeSource.measureTime(block: () -> Unit): Duration

Выполняет заданную функцию блок и возвращает длительность прошедшего интервала времени.

measureTimedValue

Начиная с Kotlin: 1.9

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

Выполняет заданную функцию блок и возвращает экземпляр класса TimedValue, содержащий результат выполнения функции и длительность прошедшего интервала времени.

plusAssign

Начиная с Kotlin: 1.9

operator fun plusAssign(duration: Duration)

Увеличивает текущее значение показаний этого источника времени на заданную длительность.

read

Начиная с Kotlin: 1.9

protected open override fun read(): Long

Этот защищённый метод следует переопределить, чтобы он возвращал текущее значение показаний источника времени как число типа Long в единицах измерения, указанных в свойстве unit.

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/-test-time-source/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API