Added in API level 1
Deprecated in API level 3

ActivityInstrumentationTestCase


abstract class ActivityInstrumentationTestCase<T : Activity!> : ActivityTestCase

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. Most of the work is handled automatically here by setUp and tearDown.

If you prefer an isolated unit test, see android.test.ActivityUnitTestCase.

Summary

Public constructors
ActivityInstrumentationTestCase(pkg: String!, activityClass: Class<T>!)

Creates an ActivityInstrumentationTestCase in non-touch mode.

ActivityInstrumentationTestCase(pkg: String!, activityClass: Class<T>!, initialTouchMode: Boolean)

Creates an ActivityInstrumentationTestCase.

Public methods
open T

open Unit

Protected methods
open Unit

open Unit

Inherited functions
Instrumentation! getInstrumentation()

Inheritors can access the instrumentation using this.

Unit injectInsrumentation(instrumentation: Instrumentation!)

Injects instrumentation into this test case. This method is called by the test runner during test setup.

Unit injectInstrumentation(instrumentation: Instrumentation!)

Injects instrumentation into this test case. This method is called by the test runner during test setup.

T launchActivity(pkg: String!, activityCls: Class<T>!, extras: Bundle!)

Utility method for launching an activity.

The Intent used to launch the Activity is: action = Intent.ACTION_MAIN extras = null, unless a custom bundle is provided here All other fields are null or empty.

NOTE: The parameter pkg must refer to the package identifier of the package hosting the activity to be launched, which is specified in the AndroidManifest.xml file. This is not necessarily the same as the java package name.

T launchActivityWithIntent(pkg: String!, activityCls: Class<T>!, intent: Intent!)

Utility method for launching an activity with a specific Intent.

NOTE: The parameter pkg must refer to the package identifier of the package hosting the activity to be launched, which is specified in the AndroidManifest.xml file. This is not necessarily the same as the java package name.

Unit runTest()

Runs the current unit test. If the unit test is annotated with android.test.UiThreadTest, the test is run on the UI thread.

Unit runTestOnUiThread(r: Runnable!)

Helper for running portions of a test on the UI thread. Note, in most cases it is simpler to annotate the test method with android.test.UiThreadTest, which will run the entire test method on the UI thread. Use this method if you need to switch in and out of the UI thread to perform your test.

Unit sendKeys(vararg keys: Int)

Sends a series of key events through instrumentation and waits for idle. For instance: sendKeys(KEYCODE_DPAD_LEFT, KEYCODE_DPAD_CENTER).

Unit sendKeys(keysSequence: String!)

Sends a series of key events through instrumentation and waits for idle. The sequence of keys is a string containing the key names as specified in KeyEvent, without the KEYCODE_ prefix. For instance: sendKeys("DPAD_LEFT A B C DPAD_CENTER"). Each key can be repeated by using the N* prefix. For instance, to send two KEYCODE_DPAD_LEFT, use the following: sendKeys("2*DPAD_LEFT").

Unit sendRepeatedKeys(vararg keys: Int)

Sends a series of key events through instrumentation and waits for idle. Each key code must be preceded by the number of times the key code must be sent. For instance: sendRepeatedKeys(1, KEYCODE_DPAD_CENTER, 2, KEYCODE_DPAD_LEFT).

Unit 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.

Unit scrubClass(testCaseClass: Class<*>!)

This function is called by various TestCase implementations, at tearDown() time, in order to scrub out any class variables. This protects against memory leaks in the case where a test case creates a non-static inner class (thus referencing the test case) and gives it to someone else to hold onto.

Unit setActivity(testActivity: Activity!)

Set the activity under test.

Public constructors

ActivityInstrumentationTestCase

Added in API level 1
ActivityInstrumentationTestCase(
    pkg: String!,
    activityClass: Class<T>!)

Creates an ActivityInstrumentationTestCase in non-touch mode.

Parameters
pkg String!: ignored - no longer in use.
activityClass Class<T>!: The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml

ActivityInstrumentationTestCase

Added in API level 1
ActivityInstrumentationTestCase(
    pkg: String!,
    activityClass: Class<T>!,
    initialTouchMode: Boolean)

Creates an ActivityInstrumentationTestCase.

Parameters
pkg String!: ignored - no longer in use.
activityClass Class<T>!: The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml
initialTouchMode Boolean: true = in touch mode

Public methods

getActivity

Added in API level 1
open fun getActivity(): T

Deprecated: Deprecated in Java.

Return
T Returns the activity under test.

testActivityTestCaseSetUpProperly

Added in API level 1
open fun testActivityTestCaseSetUpProperly(): Unit

Deprecated: Deprecated in Java.

Protected methods

setUp

Added in API level 1
protected open fun setUp(): Unit

Deprecated: Deprecated in Java.

tearDown

Added in API level 1
protected open fun tearDown(): Unit

Deprecated: Deprecated in Java.

Exceptions
java.lang.Exception