IdlingResource
interface IdlingResource
CountingIdlingResource |
An implementation of |
IdlingScheduledThreadPoolExecutor |
A |
IdlingThreadPoolExecutor |
A |
UriIdlingResource |
An implementation of |
Represents a resource of an application under test which can cause asynchronous background work to happen during test execution (e.g. an intent service that processes a button click). By default, Espresso synchronizes all view operations with the UI thread as well as AsyncTasks; however, it has no way of doing so with "hand-made" resources. In such cases, test authors can register the custom resource via androidx.test.espresso.IdlingRegistry and Espresso will wait for the resource to become idle prior to executing a view operation.
Important Note: it is assumed that the resource stays idle most of the time.
Note: before writing your implementation consider using androidx.test.espresso.idling.CountingIdlingResource instead.
Summary
Nested types |
|---|
interface IdlingResource.ResourceCallbackRegistered by an |
Public functions |
|
|---|---|
String! |
getName()Returns the name of the resources (used for logging and idempotency of registration). |
Boolean |
Returns |
Unit |
Registers the given |
Public functions
getName
fun getName(): String!
Returns the name of the resources (used for logging and idempotency of registration).
isIdleNow
fun isIdleNow(): Boolean
Returns true if resource is currently idle. Espresso will always call this method from the main thread, therefore it should be non-blocking and return immediately.
registerIdleTransitionCallback
fun registerIdleTransitionCallback(
callback: IdlingResource.ResourceCallback!
): Unit
Registers the given ResourceCallback with the resource. Espresso will call this method:
- with its implementation of
ResourceCallbackso it can be notified asynchronously that your resource is idle - from the main thread, but you are free to execute the callback's onTransitionToIdle from any thread
- once (when it is initially given a reference to your IdlingResource)
You only need to call this upon transition from busy to idle - if the resource is already idle when the method is called invoking the call back is optional and has no significant impact.