FakeClock
@UnstableApi
class FakeClock : Clock
Fake Clock implementation that allows to advance the time manually to trigger pending timed messages.
All timed messages sent by a Handler created from this clock are governed by the clock's time. Messages sent through these handlers are not triggered until previous messages on any thread have been handled to ensure deterministic execution. Note that this includes messages sent from the main Robolectric test thread, meaning that these messages are only triggered if the main test thread is idle, which can be explicitly requested by calling ShadowLooper.idleMainLooper().
The clock also sets the time of the SystemClock to match the clock's time.
Summary
Nested types |
|---|
class FakeClock.BuilderA builder for |
protected inner class FakeClock.HandlerMessage : Comparable, HandlerWrapper.MessageMessage data saved to send messages or execute runnables at a later time on a Handler. |
Constants |
|
|---|---|
const Long |
The default maximum time difference between two messages that the fake clock will automatically advance. |
Public constructors |
|---|
|
Creates a fake clock that doesn't auto-advance and assumes that the system was booted exactly at time |
|
Creates a fake clock that assumes that the system was booted exactly at time |
|
Creates a fake clock that assumes that the system was booted exactly at time |
|
Creates a fake clock specifying when the system was booted and how much time has passed since then. |
Public functions |
|
|---|---|
synchronized Unit |
advanceTime(timeDiffMs: Long)Advance timestamp of |
HandlerWrapper! |
createHandler(Creates a |
synchronized Long |
Returns the current time in milliseconds since the Unix Epoch. |
synchronized Long |
|
synchronized Long |
nanoTime()See |
synchronized Unit |
Notifies the clock that the current thread is about to be blocked and won't return until a condition on another thread becomes true. |
Long |
Protected functions |
|
|---|---|
synchronized Unit |
addPendingHandlerMessage(message: FakeClock.HandlerMessage!)Adds a message to the list of pending messages. |
Constants
DEFAULT_MAX_AUTO_ADVANCING_TIME_DIFF_MS
const val DEFAULT_MAX_AUTO_ADVANCING_TIME_DIFF_MS = 1000: Long
The default maximum time difference between two messages that the fake clock will automatically advance.
Public constructors
FakeClock
FakeClock(initialTimeMs: Long)
Creates a fake clock that doesn't auto-advance and assumes that the system was booted exactly at time 0 (the Unix Epoch) and initialTimeMs milliseconds have passed since system boot.
| Parameters | |
|---|---|
initialTimeMs: Long |
The initial elapsed time since the boot time, in milliseconds. |
FakeClock
FakeClock(isAutoAdvancing: Boolean)
Creates a fake clock that assumes that the system was booted exactly at time 0 (the Unix Epoch) and an initialTimeMs of 0.
| Parameters | |
|---|---|
isAutoAdvancing: Boolean |
Whether the clock should automatically advance the time to the time of next message that is due to be sent. |
FakeClock
FakeClock(initialTimeMs: Long, isAutoAdvancing: Boolean)
Creates a fake clock that assumes that the system was booted exactly at time 0 (the Unix Epoch) and initialTimeMs milliseconds have passed since system boot.
FakeClock
FakeClock(bootTimeMs: Long, initialTimeMs: Long, isAutoAdvancing: Boolean)
Creates a fake clock specifying when the system was booted and how much time has passed since then.
| Parameters | |
|---|---|
bootTimeMs: Long |
The time the system was booted since the Unix Epoch, in milliseconds. |
initialTimeMs: Long |
The initial elapsed time since the boot time, in milliseconds. |
isAutoAdvancing: Boolean |
Whether the clock should automatically advance the time to the time of next message that is due to be sent. |
Public functions
advanceTime
synchronized fun advanceTime(timeDiffMs: Long): Unit
Advance timestamp of FakeClock by the specified duration.
| Parameters | |
|---|---|
timeDiffMs: Long |
The amount of time to add to the timestamp in milliseconds. |
createHandler
fun createHandler(
looper: Looper!,
@UnknownInitialization callback: @UnknownInitialization Handler.Callback?
): HandlerWrapper!
Creates a HandlerWrapper using a specified looper and a specified callback for handling messages.
| See also | |
|---|---|
Handler |
currentTimeMillis
synchronized fun currentTimeMillis(): Long
Returns the current time in milliseconds since the Unix Epoch.
| See also | |
|---|---|
currentTimeMillis |
onThreadBlocked
synchronized fun onThreadBlocked(): Unit
Notifies the clock that the current thread is about to be blocked and won't return until a condition on another thread becomes true.
Should be a no-op for all non-test cases.
Protected functions
addPendingHandlerMessage
synchronized protected fun addPendingHandlerMessage(message: FakeClock.HandlerMessage!): Unit
Adds a message to the list of pending messages.