ActivityInstrumentationTestCase2


public abstract class ActivityInstrumentationTestCase2
extends ActivityTestCase

java.lang.Object
   ↳ android.test.InstrumentationTestCase
     ↳ android.test.ActivityTestCase
       ↳ android.test.ActivityInstrumentationTestCase2<T extends android.app.Activity>


This class was deprecated in API level 24.
Use ActivityTestRule instead. New tests should be written using the Android Testing Support Library.

This class provides functional testing of a single activity. The activity under test will be created using the system infrastructure (by calling InstrumentationTestCase.launchActivity()) and you will then be able to manipulate your Activity directly.

Other options supported by this test case include:

This class replaces ActivityInstrumentationTestCase, which is deprecated. New tests should be written using this base class.

If you prefer an isolated unit test, see ActivityUnitTestCase.

Summary

Public constructors

ActivityInstrumentationTestCase2(Class<T> activityClass)

Creates an ActivityInstrumentationTestCase2.

ActivityInstrumentationTestCase2(String pkg, Class<T> activityClass)

This constructor is deprecated. use ActivityInstrumentationTestCase2(java.lang.Class) instead

Public methods

T getActivity()

Get the Activity under test, starting it if necessary.

void setActivityInitialTouchMode(boolean initialTouchMode)

Call this method before the first call to getActivity() to set the initial touch mode for the Activity under test.

void setActivityIntent(Intent i)

Call this method before the first call to getActivity() to inject a customized Intent into the Activity under test.

Protected methods

void runTest()

Runs the current unit test.

void setUp()
void tearDown()

Make sure all resources are cleaned up and garbage collected before moving on to the next test.

Inherited methods

Activity getActivity()
void scrubClass(Class<?> testCaseClass)

This function is called by various TestCase implementations, at tearDown() time, in order to scrub out any class variables.

void setActivity(Activity testActivity)

Set the activity under test.

Instrumentation getInstrumentation()

Inheritors can access the instrumentation using this.

void injectInsrumentation(Instrumentation instrumentation)

This method was deprecated in API level 15. Incorrect spelling, use injectInstrumentation(android.app.Instrumentation) instead.

void injectInstrumentation(Instrumentation instrumentation)

Injects instrumentation into this test case.

final <T extends Activity> T launchActivity(String pkg, Class<T> activityCls, Bundle extras)

Utility method for launching an activity.

final <T extends Activity> T launchActivityWithIntent(String pkg, Class<T> activityCls, Intent intent)

Utility method for launching an activity with a specific Intent.

void runTest()

Runs the current unit test.

void runTestOnUiThread(Runnable r)

Helper for running portions of a test on the UI thread.

void sendKeys(int... keys)

Sends a series of key events through instrumentation and waits for idle.

void sendKeys(String keysSequence)

Sends a series of key events through instrumentation and waits for idle.

void sendRepeatedKeys(int... keys)

Sends a series of key events through instrumentation and waits for idle.

void tearDown()

Make sure all resources are cleaned up and garbage collected before moving on to the next test.

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Public constructors

ActivityInstrumentationTestCase2

Added in API level 8
public ActivityInstrumentationTestCase2 (Class<T> activityClass)

Creates an ActivityInstrumentationTestCase2.

Parameters
activityClass Class: The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml

ActivityInstrumentationTestCase2

Added in API level 3
public ActivityInstrumentationTestCase2 (String pkg, 
                Class<T> activityClass)

This constructor is deprecated.
use ActivityInstrumentationTestCase2(java.lang.Class) instead

Creates an ActivityInstrumentationTestCase2.

Parameters
pkg String: ignored - no longer in use.

activityClass Class: The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml

Public methods

getActivity

Added in API level 3
public T getActivity ()

Get the Activity under test, starting it if necessary. For each test method invocation, the Activity will not actually be created until the first time this method is called.

If you wish to provide custom setup values to your Activity, you may call setActivityIntent(android.content.Intent) and/or setActivityInitialTouchMode(boolean) before your first call to getActivity(). Calling them after your Activity has started will have no effect.

NOTE: Activities under test may not be started from within the UI thread. If your test method is annotated with UiThreadTest, then your Activity will be started automatically just before your test method is run. You still call this method in order to get the Activity under test.

Returns
T the Activity under test

setActivityInitialTouchMode

Added in API level 3
public void setActivityInitialTouchMode (boolean initialTouchMode)

Call this method before the first call to getActivity() to set the initial touch mode for the Activity under test.

If you do not call this, the touch mode will be false. If you call this after your Activity has been started, it will have no effect.

NOTE: Activities under test may not be started from within the UI thread. If your test method is annotated with UiThreadTest, then you must call setActivityInitialTouchMode(boolean) from setUp().

Parameters
initialTouchMode boolean: true if the Activity should be placed into "touch mode" when started

setActivityIntent

Added in API level 3
public void setActivityIntent (Intent i)

Call this method before the first call to getActivity() to inject a customized Intent into the Activity under test.

If you do not call this, the default intent will be provided. If you call this after your Activity has been started, it will have no effect.

NOTE: Activities under test may not be started from within the UI thread. If your test method is annotated with UiThreadTest, then you must call setActivityIntent(android.content.Intent) from setUp().

The default Intent (if this method is not called) is: action = Intent.ACTION_MAIN flags = Intent.FLAG_ACTIVITY_NEW_TASK All other fields are null or empty.

Parameters
i Intent: The Intent to start the Activity with, or null to reset to the default Intent.

Protected methods

runTest

Added in API level 3
protected void runTest ()

Runs the current unit test. If the unit test is annotated with UiThreadTest, force the Activity to be created before switching to the UI thread.

Throws
Throwable

setUp

Added in API level 3
protected void setUp ()

Throws
Exception

tearDown

Added in API level 3
protected void tearDown ()

Make sure all resources are cleaned up and garbage collected before moving on to the next test. Subclasses that override this method should make sure they call super.tearDown() at the end of the overriding method.

Throws
Exception