Most visited

Recently visited

Added in API level 1
Deprecated since API level 24

ActivityUnitTestCase

public abstract class ActivityUnitTestCase
extends ActivityTestCase

java.lang.Object
   ↳ junit.framework.Assert
     ↳ junit.framework.TestCase
       ↳ android.test.InstrumentationTestCase
         ↳ android.test.ActivityTestCase
           ↳ android.test.ActivityUnitTestCase<T extends android.app.Activity>


此类在API级别24中已被弃用。
改为写Local Unit Tests

此课程提供单个活动的单独测试。 被测试的活动将在与系统基础结构最少连接的情况下创建,并且您可以注入许多Activity的依赖关系的模拟或包装版本。 大部分工作由setUp()tearDown()自动处理。

如果您更喜欢功能测试,请参阅 ActivityInstrumentationTestCase

必须注意的是,作为真正的单元测试,您的活动不会在正常系统中运行,并且不会参与与其他活动的正常交互。 下面的方法不应该在这个配置中调用 - 它们中的大多数都会抛出异常:

以下方法可能会被调用,但不会执行任何操作。 出于测试目的,您可以使用方法getStartedActivityIntent()getStartedActivityRequest()来检查它们被调用的参数。

以下方法可能会被调用,但不会执行任何操作。 出于测试目的,您可以使用方法isFinishCalled()getFinishedActivityRequest()来检查它们被调用的参数。

Summary

Public constructors

ActivityUnitTestCase(Class<T> activityClass)

Public methods

T getActivity()
int getFinishedActivityRequest()

如果被测活动名为 finishActivity(int)此方法将返回请求代码。

int getRequestedOrientation()

如果被测活动调用 setRequestedOrientation(int)此方法将返回该值。

Intent getStartedActivityIntent()

如果您的测试活动调用 startActivity(Intent)startActivityForResult(Intent, int)此方法将返回启动意向。

int getStartedActivityRequest()

如果您的测试活动调用 startActivityForResult(Intent, int)此方法将返回启动请求代码。

boolean isFinishCalled()

此方法将通知您,如果被测活动称为 finish()finishFromChild(Activity) ,或 finishActivity(int)

void setActivityContext(Context activityContext)

如果你想注入模拟,隔离或其他改变的上下文,你可以在这里做。

void setApplication(Application application)

设置测试过程中使用的应用程序。

Protected methods

void setUp()

设置夹具,例如打开网络连接。

T startActivity(Intent intent, Bundle savedInstanceState, Object lastNonConfigurationInstance)

开始被测试的活动,就像 Context.startActivity()开始 Context.startActivity() ,提供它提供的参数。

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

ActivityUnitTestCase

Added in API level 1
ActivityUnitTestCase (Class<T> activityClass)

Parameters
activityClass Class

Public methods

getActivity

Added in API level 1
T getActivity ()

Returns
T Returns the activity under test.

getFinishedActivityRequest

Added in API level 1
int getFinishedActivityRequest ()

如果被测活动名为 finishActivity(int)此方法将返回请求代码。

Returns
int The request code provided in the start call, or -1 if no finish call was made.

getRequestedOrientation

Added in API level 1
int getRequestedOrientation ()

如果被测活动调用 setRequestedOrientation(int)此方法将返回值。

Returns
int

getStartedActivityIntent

Added in API level 1
Intent getStartedActivityIntent ()

如果您的测试活动调用 startActivity(Intent)startActivityForResult(Intent, int)此方法将返回启动意向。

Returns
Intent The Intent provided in the start call, or null if no start call was made.

getStartedActivityRequest

Added in API level 1
int getStartedActivityRequest ()

如果您的测试活动调用 startActivityForResult(Intent, int)此方法将返回启动请求代码。

Returns
int The request code provided in the start call, or -1 if no start call was made.

isFinishCalled

Added in API level 1
boolean isFinishCalled ()

此方法将通知您,如果被测活动称为 finish()finishFromChild(Activity) ,或 finishActivity(int)

Returns
boolean Returns true if one of the listed finish methods was called.

setActivityContext

Added in API level 1
void setActivityContext (Context activityContext)

如果你想注入模拟,隔离或其他改变的上下文,你可以在这里做。 在致电startActivity(Intent, Bundle, Object)之前,您必须调用此函数。 如果您希望获得真实的上下文,则可以使用getInstrumentation()。getTargetContext()作为构建块。

Parameters
activityContext Context

setApplication

Added in API level 1
void setApplication (Application application)

设置测试过程中使用的应用程序。 在致电startActivity(Intent, Bundle, Object)之前,您必须调用此函数。 如果你的测试没有调用这个方法,

Parameters
application Application: The Application object that will be injected into the Activity under test.

Protected methods

setUp

Added in API level 1
void setUp ()

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

Throws
异常

startActivity

Added in API level 1
T startActivity (Intent intent, 
                Bundle savedInstanceState, 
                Object lastNonConfigurationInstance)

开始被测活动,就像Context.startActivity()开始Context.startActivity() ,提供它提供的参数。 当您使用此方法启动活动时,它将自动被tearDown()停止。

此方法将调用onCreate(),但如果您希望进一步练习Activity生命周期方法,则必须从测试用例中自行调用它们。

不要从你的setUp()方法中调用。 您必须从每种测试方法调用此方法。

Parameters
intent Intent: The Intent as if supplied to startActivity(Intent).
savedInstanceState Bundle: The instance state, if you are simulating this part of the life cycle. Typically null.
lastNonConfigurationInstance Object: This Object will be available to the Activity if it calls getLastNonConfigurationInstance(). Typically null.
Returns
T Returns the Activity that was created

tearDown

Added in API level 1
void tearDown ()

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

Throws
异常

Hooray!