EspressoRemote

public final class EspressoRemote
extends Object implements RemoteInteraction

java.lang.Object
   ↳ androidx.test.espresso.remote.EspressoRemote


A singleton class that facilitates communication between other Espresso instance that may be running in different processes.

This class depends on InstrumentationConnection to notify about the discovery of other remote Espresso instances and provide their Messenger object to use for further IPC.

To get the instance of this object getInstance() should be called. The user of this class should then call init() prior to attempting to use any functionality of this class. Call terminate() after using EspressoRemote to release any resources. Failure to do so will lead to memory leaks and unexpected behavior.

Summary

Inherited constants

From interface androidx.test.espresso.remote.RemoteInteraction

Public methods

Callable<Void> createRemoteCheckCallable(Matcher<Root> rootMatcher, Matcher<View> viewMatcher, Map<StringIBinder> iBinders, ViewAssertion viewAssertion)

Creates a callable to run Espresso check interaction on remote processes

The caller is expected to schedule the task to run.

Callable<Void> createRemotePerformCallable(Matcher<Root> rootMatcher, Matcher<View> viewMatcher, Map<StringIBinder> iBinders, ViewAction... viewActions)

Creates a callable to run a perform interaction on remote processes.

static EspressoRemote getInstance()

Returns an instance of EspressoRemote object.

void init()

Must be called prior to using any functionality of this class.

boolean isRemoteProcess()
void terminate()

Must be called to disable further use of this class.

Inherited methods

From class java.lang.Object
From interface androidx.test.espresso.remote.RemoteInteraction

Public methods

createRemoteCheckCallable

Callable<Void> createRemoteCheckCallable (Matcher<Root> rootMatcher, 
                Matcher<View> viewMatcher, 
                Map<StringIBinder> iBinders, 
                ViewAssertion viewAssertion)

Creates a callable to run Espresso check interaction on remote processes

The caller is expected to schedule the task to run.

Parameters
rootMatcher Matcher: the root matcher to use.

viewMatcher Matcher: the view matcher to use.

iBinders Map: a list of binders to pass along to the remote process instance

viewAssertion ViewAssertion: the assertion to check.

Returns
Callable<Void> a Callable that will perform the check pending completion of the task.

createRemotePerformCallable

Callable<Void> createRemotePerformCallable (Matcher<Root> rootMatcher, 
                Matcher<View> viewMatcher, 
                Map<StringIBinder> iBinders, 
                ViewAction... viewActions)

Creates a callable to run a perform interaction on remote processes.

If there no remote Espresso currently running in a timely manner the interaction will not be executed and a NoRemoteEspressoInstanceException will be thrown.

Parameters
rootMatcher Matcher: the root matcher to use.

viewMatcher Matcher: the view matcher to use.

iBinders Map: a list of binders to pass along to the remote process instance

viewActions ViewAction: one or more actions to execute.

Returns
Callable<Void> a Callable that performs the action.

getInstance

EspressoRemote getInstance ()

Returns an instance of EspressoRemote object.

Returns
EspressoRemote

init

void init ()

Must be called prior to using any functionality of this class.

During initialization the instance of this class will be registered with InstrumentationConnection.

isRemoteProcess

boolean isRemoteProcess ()

Returns
boolean

terminate

void terminate ()

Must be called to disable further use of this class.

During termination the instance of this class will be un-registered with InstrumentationConnection and clear the list of known remote Espresso Messengers.