public abstract class ApplicationTestCase
extends AndroidTestCase
java.lang.Object | ||||
↳ | junit.framework.Assert | |||
↳ | junit.framework.TestCase | |||
↳ | android.test.AndroidTestCase | |||
↳ | android.test.ApplicationTestCase<T extends android.app.Application> |
此类在API级别24中已被弃用。
改为使用InstrumentationRegistry 。 应使用Android Testing Support Library编写新的测试。
该测试用例提供了一个框架,您可以在该框架中在受控环境中测试应用程序类。 它为应用程序的生命周期提供基本支持,并且可以通过这些钩子注入各种依赖项并控制应用程序测试的环境。
生命周期支持。 每个应用程序都被设计为在特定的方法调用序列内进行访问(有关更多详细信息,请参阅Application
)。 为了支持应用程序的生命周期,此测试用例将在以下时间进行以下调用。
createApplication()
. This gives you a chance to set up or adjust any additional framework or test logic before onCreate().tearDown()
method is automatically called, and it will stop & destroy your application by calling its onDestroy() method.依赖注入。 每个应用程序都有一个内在的依赖关系,即它运行的Context
。 这个框架允许你为这个依赖注入一个修改的,模拟的或孤立的替换,从而执行一个真正的单元测试。
如果只是简单地运行你的测试,你的应用程序将被注入一个全功能的上下文。 您可以通过调用setContext()
创建并注入其他类型的上下文。 您必须在致电createApplication()
之前执行此createApplication()
。 测试框架提供了许多用于上下文替代品,包括MockContext
, RenamingDelegatingContext
,和ContextWrapper
。
Inherited fields |
---|
From class android.test.AndroidTestCase
|
Public constructors |
|
---|---|
ApplicationTestCase(Class<T> applicationClass) |
Public methods |
|
---|---|
T |
getApplication() |
Context |
getSystemContext() 返回一个真实的(未嘲弄或检测到的)系统上下文,它可以在您的应用程序生成模拟或其他上下文对象时使用。 |
final void |
testApplicationTestCaseSetUpProperly() 这个测试只是确认Application类可以正确实例化。 |
Protected methods |
|
---|---|
final void |
createApplication() 按照与系统启动相同的方式启动待测试应用程序。 |
void |
setUp() 这将做实例化被测试应用程序的工作。 |
void |
tearDown() 关闭正在测试的应用程序。 |
final void |
terminateApplication() 这将进行必要的调用来终止测试中的应用程序(它将调用onTerminate()。 |
Inherited methods |
|
---|---|
From class android.test.AndroidTestCase
|
|
From class junit.framework.TestCase
|
|
From class junit.framework.Assert
|
|
From class java.lang.Object
|
|
From interface junit.framework.Test
|
ApplicationTestCase (Class<T> applicationClass)
Parameters | |
---|---|
applicationClass |
Class
|
T getApplication ()
Returns | |
---|---|
T |
Returns the actual Application under test. |
Context getSystemContext ()
返回一个真实的(未嘲弄或检测到的)系统上下文,它可以在您的应用程序生成模拟或其他上下文对象时使用。
Returns | |
---|---|
Context |
Returns a reference to a normal Context. |
void testApplicationTestCaseSetUpProperly ()
这个测试只是确认Application类可以正确实例化。
Throws | |
---|---|
异常 |
void createApplication ()
按照与系统启动相同的方式启动待测试应用程序。 如果您使用此方法启动应用程序,它将自动被tearDown()
停止。 如果您希望通过调用setContext()
为您的测试注入专用的上下文,则必须在调用此方法之前执行此操作。
void tearDown ()
关闭正在测试的应用程序。 还要确保在进行下一个测试之前清理所有资源并进行垃圾收集。 覆盖此方法的子类应确保它们在重写方法的末尾调用super.tearDown()。
Throws | |
---|---|
异常 |
void terminateApplication ()
这将会进行必要的调用来终止被测试的应用程序(它会调用onTerminate()。通常这会被自动调用(通过 tearDown()
,但是你可以直接从你的测试中调用它来检查正确的关闭行为。