Most visited

Recently visited

Added in API level 3
Deprecated since API level 24

ActivityInstrumentationTestCase2

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())创建,然后您将能够直接操作您的活动。

此测试案例支持的其他选项包括:

此课程将取代已弃用的ActivityInstrumentationTestCase 新的测试应该使用这个基类来编写。

如果您偏好单独的单元测试,请参阅 ActivityUnitTestCase

Summary

Public constructors

ActivityInstrumentationTestCase2(String pkg, Class<T> activityClass)

此构造函数在API级别8中已弃用。 ActivityInstrumentationTestCase2(Class)改为使用ActivityInstrumentationTestCase2(Class)

ActivityInstrumentationTestCase2(Class<T> activityClass)

创建一个 ActivityInstrumentationTestCase2

Public methods

T getActivity()

获取测试活动,如有必要,启动它。

void setActivityInitialTouchMode(boolean initialTouchMode)

在第一次调用 getActivity()之前调用此方法为 getActivity()活动设置初始触摸模式。

void setActivityIntent(Intent i)

在第一次调用 getActivity()之前调用此方法将自定义的Intent注入到 getActivity()活动中。

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

Public constructors

ActivityInstrumentationTestCase2

Added in API level 3
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

Added in API level 8
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

Public methods

getActivity

Added in API level 3
T getActivity ()

获取测试活动,如有必要,启动它。 对于每个测试方法调用,只有在第一次调用此方法时才会实际创建Activity。

如果您希望为自己的活动提供自定义设置值, setActivityInitialTouchMode(boolean)在第一次调用getActivity()之前调用setActivityIntent(Intent)和/或setActivityInitialTouchMode(boolean) 活动开始后调用它们将不起作用。

注意:测试中的活动不能从UI线程内启动。 如果您的测试方法用UiThreadTest标注,那么您的活动将在测试方法运行之前自动启动。 您仍然调用此方法以获取待测活动。

Returns
T the Activity under test

setActivityInitialTouchMode

Added in API level 3
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

setActivityIntent

Added in API level 3
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.

Protected methods

runTest

Added in API level 3
void runTest ()

运行当前的单元测试。 如果单元测试用UiThreadTest标注, UiThreadTest在切换到UI线程之前强制创建活动。

Throws
Throwable

setUp

Added in API level 3
void setUp ()

设置夹具,例如打开网络连接。 在执行测试之前调用此方法。

Throws
异常

tearDown

Added in API level 3
void tearDown ()

在开始下一个测试之前,确保清理所有资源并收集垃圾。 覆盖此方法的子类应确保它们在重写方法的末尾调用super.tearDown()。

Throws
异常

Hooray!