ActivityInstrumentationTestCase2
abstract classActivityInstrumentationTestCase2<T : Activity!> : ActivityTestCase
kotlin.Any | |||
↳ | android.test.InstrumentationTestCase | ||
↳ | android.test.ActivityTestCase | ||
↳ | android.test.ActivityInstrumentationTestCase2 |
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:
- You can run any test method on the UI thread (see
android.test.UiThreadTest
). - You can inject custom Intents into your Activity (see
setActivityIntent(android.content.Intent)
).
This class replaces android.test.ActivityInstrumentationTestCase
, which is deprecated. New tests should be written using this base class.
If you prefer an isolated unit test, see android.test.ActivityUnitTestCase
.
Summary
Public constructors | |
---|---|
ActivityInstrumentationTestCase2(activityClass: Class<T>!) Creates an |
|
ActivityInstrumentationTestCase2(pkg: String!, activityClass: Class<T>!) Creates an |
Public methods | |
---|---|
open T |
Get the Activity under test, starting it if necessary. |
open Unit |
setActivityInitialTouchMode(initialTouchMode: Boolean) Call this method before the first call to |
open Unit |
setActivityIntent(i: Intent!) Call this method before the first call to |
Protected methods | |
---|---|
open Unit |
runTest() Runs the current unit test. |
open Unit |
setUp() |
open Unit |
tearDown() |
Inherited functions | |
---|---|
Public constructors
ActivityInstrumentationTestCase2
ActivityInstrumentationTestCase2(activityClass: Class<T>!)
Creates an ActivityInstrumentationTestCase2
.
Parameters | |
---|---|
activityClass |
Class<T>!: The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml |
ActivityInstrumentationTestCase2
ActivityInstrumentationTestCase2(
pkg: String!,
activityClass: Class<T>!)
Deprecated: use ActivityInstrumentationTestCase2(java.lang.Class)
instead
Creates an ActivityInstrumentationTestCase2
.
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 |
Public methods
getActivity
open fungetActivity(): T
Deprecated: Deprecated in Java.
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 android.test.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.
Return | |
---|---|
T |
the Activity under test |
setActivityInitialTouchMode
open funsetActivityInitialTouchMode(initialTouchMode: Boolean): Unit
Deprecated: Deprecated in Java.
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 android.test.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
open funsetActivityIntent(i: Intent!): Unit
Deprecated: Deprecated in Java.
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 android.test.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
protected open funrunTest(): Unit
Deprecated: Deprecated in Java.
Runs the current unit test. If the unit test is annotated with android.test.UiThreadTest
, force the Activity to be created before switching to the UI thread.
tearDown
protected open funtearDown(): Unit
Deprecated: Deprecated in Java.
Exceptions | |
---|---|
java.lang.Exception |