準備打算做一點android平臺下的自動化測試,代碼寫好後準備進行自動化,發現自己對ActivityInstrumentationTestCase2還一點點都不太瞭解,不得已又返回來了解ActivityInstrumentationTestCase2的一些知識,以便後面更好的進行android平臺下自動化框架的搭建和學習。
java.lang.Object | |||||
↳ | junit.framework.Assert | ||||
↳ | junit.framework.TestCase | ||||
↳ | android.test.InstrumentationTestCase | ||||
↳ | android.test.ActivityTestCase | ||||
↳ | android.test.ActivityInstrumentationTestCase2<T extends android.app.Activity> |
Class Overview
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
UiThreadTest
). -
You can inject custom Intents into your Activity (see
setActivityIntent(Intent)
).
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
.
Developer Guides
For more information about application testing, read the Testing developer guide.
Summary
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ActivityInstrumentationTestCase2(String pkg, Class<T> activityClass) | |||||||||||
ActivityInstrumentationTestCase2(Class<T>
activityClass)
Creates an
ActivityInstrumentationTestCase2 . |
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()
Sets up the fixture, for example, open a network connection.
|
||||||||||
void |
tearDown()
Make sure all resources are cleaned up and garbage collected before moving on to the next test.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class android.test.ActivityTestCase | |||||||||||
From class android.test.InstrumentationTestCase | |||||||||||
From class junit.framework.TestCase | |||||||||||
From class junit.framework.Assert | |||||||||||
From class java.lang.Object | |||||||||||
From interface junit.framework.Test |
Public Constructors
public ActivityInstrumentationTestCase2 (String pkg, Class<T> activityClass)
This constructor is deprecated.
use ActivityInstrumentationTestCase2(Class)
instead
Creates an ActivityInstrumentationTestCase2
.
Parameters
pkg | ignored - no longer in use. |
---|---|
activityClass | The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml |
public ActivityInstrumentationTestCase2 (Class<T> activityClass)
Creates an ActivityInstrumentationTestCase2
.
Parameters
activityClass | The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml |
---|
Public Methods
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(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
- the Activity under test
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)
fromsetUp()
.
Parameters
initialTouchMode | true if the Activity should be placed into "touch mode" when started |
---|
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(Intent)
from setUp()
.
The default Intent (if this method is not called) is: action = ACTION_MAIN
flags
= FLAG_ACTIVITY_NEW_TASK
All
other fields are null or empty.
Parameters
i | The Intent to start the Activity with, or null to reset to the default Intent. |
---|
Protected Methods
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 |
---|
protected void setUp ()
Sets up the fixture, for example, open a network connection. This method is called before a test is executed.
Throws
Exception |
---|
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 |
---|