public abstract class ActivityInstrumentationTestCase2
extends ActivityTestCase
java.lang.Object | |||||
↳ | junit.framework.Assert | ||||
↳ | junit.framework.TestCase | ||||
↳ | android.test.InstrumentationTestCase | ||||
↳ | android.test.ActivityTestCase | ||||
↳ | android.test.ActivityInstrumentationTestCase2<T extends android.app.Activity> |
此类在API级别24中已被弃用。
改为使用ActivityTestRule 。 应使用Android Testing Support Library编写新测试。
此课程提供单一活动的功能测试。 测试活动将使用系统基础结构(通过调用InstrumentationTestCase.launchActivity())创建,然后您将能够直接操作您的活动。
此测试案例支持的其他选项包括:
UiThreadTest
).setActivityIntent(Intent)
).此课程将取代已弃用的ActivityInstrumentationTestCase
。 新的测试应该使用这个基类来编写。
如果您偏好单独的单元测试,请参阅 ActivityUnitTestCase
。
Public constructors |
|
---|---|
ActivityInstrumentationTestCase2(String pkg, Class<T> activityClass) 此构造函数在API级别8中已弃用。 |
|
ActivityInstrumentationTestCase2(Class<T> activityClass) |
Public methods |
|
---|---|
T |
getActivity() 获取测试活动,如有必要,启动它。 |
void |
setActivityInitialTouchMode(boolean initialTouchMode) 在第一次调用 |
void |
setActivityIntent(Intent i) 在第一次调用 |
Protected methods |
|
---|---|
void |
runTest() 运行当前的单元测试。 |
void |
setUp() 设置夹具,例如打开网络连接。 |
void |
tearDown() 在开始下一个测试之前,确保清理所有资源并收集垃圾。 |
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
|
ActivityInstrumentationTestCase2 (String pkg, Class<T> activityClass)
此构造函数在API级别8中已被弃用。
改为使用ActivityInstrumentationTestCase2(Class)
创建一个 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 |
ActivityInstrumentationTestCase2 (Class<T> activityClass)
创建一个 ActivityInstrumentationTestCase2
。
Parameters | |
---|---|
activityClass |
Class : The activity to test. This must be a class in the instrumentation targetPackage specified in the AndroidManifest.xml |
T getActivity ()
获取测试活动,如有必要,启动它。 对于每个测试方法调用,只有在第一次调用此方法时才会实际创建Activity。
如果您希望为自己的活动提供自定义设置值, setActivityInitialTouchMode(boolean)
在第一次调用getActivity()之前调用setActivityIntent(Intent)
和/或setActivityInitialTouchMode(boolean)
。 活动开始后调用它们将不起作用。
注意:测试中的活动不能从UI线程内启动。 如果您的测试方法用UiThreadTest
标注,那么您的活动将在测试方法运行之前自动启动。 您仍然调用此方法以获取待测活动。
Returns | |
---|---|
T |
the Activity under test |
void setActivityInitialTouchMode (boolean initialTouchMode)
在第一次调用 getActivity()
之前调用此方法为 getActivity()
活动设置初始触摸模式。
如果你不这样称呼,那么触摸模式将是错误的。 如果您在“活动”启动后调用此功能,则无效。
注意:测试中的活动不能从UI线程内启动。 如果您的测试方法与注解UiThreadTest
,则必须调用setActivityInitialTouchMode(boolean)
从setUp()
。
Parameters | |
---|---|
initialTouchMode |
boolean : true if the Activity should be placed into "touch mode" when started |
void setActivityIntent (Intent i)
在第一次调用 getActivity()
之前调用此方法,以将自定义的Intent注入到 getActivity()
活动中。
如果您不打电话,则会提供默认意图。 如果您在“活动”启动后调用此功能,则无效。
注意:测试中的活动不能从UI线程内启动。 如果您的测试方法与注解UiThreadTest
,则必须调用setActivityIntent(Intent)
从setUp()
。
默认的意图(如果此方法未被调用)是:action = ACTION_MAIN
flags = FLAG_ACTIVITY_NEW_TASK
所有其他字段为空或空。
Parameters | |
---|---|
i |
Intent : The Intent to start the Activity with, or null to reset to the default Intent. |
void runTest ()
运行当前的单元测试。 如果单元测试用UiThreadTest
标注, UiThreadTest
在切换到UI线程之前强制创建活动。
Throws | |
---|---|
Throwable |
void tearDown ()
在开始下一个测试之前,确保清理所有资源并收集垃圾。 覆盖此方法的子类应确保它们在重写方法的末尾调用super.tearDown()。
Throws | |
---|---|
异常 |