public abstract class ProviderTestCase2
extends AndroidTestCase
java.lang.Object | ||||
↳ | junit.framework.Assert | |||
↳ | junit.framework.TestCase | |||
↳ | android.test.AndroidTestCase | |||
↳ | android.test.ProviderTestCase2<T extends android.content.ContentProvider> |
此测试用例类提供了一个框架,用于测试单个ContentProvider
并使用独立的内容提供程序测试您的应用程序代码。 测试用例不是使用基于其他应用程序清单的提供程序的系统映射,而是创建自己的内部映射。 然后它使用该映射来解析授予权限的提供者。 这使您可以注入测试提供程序并将您不想使用的提供程序清空。
该测试用例还设置了以下模拟对象:
IsolatedContext
that stubs out Context methods that might affect the rest of the running system, while allowing tests to do real file and database work. MockContentResolver
that provides the functionality of a regular content resolver, but uses IsolatedContext
. It stubs out notifyChange(Uri, ContentObserver, boolean)
to prevent the test from affecting the running system. IsolatedContext
. 该框架由基类“ setUp()
方法自动设置。 如果重写此方法,则必须调用super方法作为重写中的第一条语句。
为了让他们的测试运行,具体的子类必须提供他们自己的没有参数的构造函数。 这个构造函数必须调用ProviderTestCase2(Class, String)
作为其第一个操作。
Inherited fields |
---|
From class android.test.AndroidTestCase
|
Public constructors |
|
---|---|
ProviderTestCase2(Class<T> providerClass, String providerAuthority) 构造函数。 |
Public methods |
|
---|---|
MockContentResolver |
getMockContentResolver() 获取初始化期间由此类创建的 |
IsolatedContext |
getMockContext() 获取初始化期间由此类创建的 |
T |
getProvider() 返回 |
static <T extends ContentProvider> ContentResolver |
newResolverWithContentProviderFromSql(Context targetContext, String filenamePrefix, Class<T> providerClass, String authority, String databaseName, int databaseVersion, String sql) 创建与传递给测试用例类相同类型的新内容提供者,并将权限名称设置为authority参数,并使用SQLite数据库作为基础数据源。 |
Protected methods |
|
---|---|
void |
setUp() 设置测试夹具的环境。 |
void |
tearDown() 放弃测试夹具的环境。 |
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
|
ProviderTestCase2 (Class<T> providerClass, String providerAuthority)
构造函数。
Parameters | |
---|---|
providerClass |
Class : The class name of the provider under test |
providerAuthority |
String : The provider's authority string |
MockContentResolver getMockContentResolver ()
获取初始化期间由此类创建的MockContentResolver
。 您必须使用此解析器的方法来访问被测试的提供者。
Returns | |
---|---|
MockContentResolver |
A MockContentResolver instance. |
IsolatedContext getMockContext ()
获取初始化期间由此类创建的 IsolatedContext
。
Returns | |
---|---|
IsolatedContext |
The IsolatedContext instance |
T getProvider ()
返回 setUp()
方法中此类创建的内容提供者。
Returns | |
---|---|
T |
T An instance of the provider class given as a parameter to the test case class. |
ContentResolver newResolverWithContentProviderFromSql (Context targetContext, String filenamePrefix, Class<T> providerClass, String authority, String databaseName, int databaseVersion, String sql)
创建与传递给测试用例类相同类型的新内容提供者,并将权限名称设置为authority参数,并使用SQLite数据库作为基础数据源。 SQL语句参数用于创建数据库。 此方法还会创建一个新的MockContentResolver
并向其添加提供程序。
新的提供者和新的解析器都被放入IsolatedContext
,该文件使用targetContext参数进行文件操作, MockContext
用于其他所有内容。 IsolatedContext在文件,数据库和目录名称前加上filenamePrefix参数。
这是创建可包含测试数据的“模拟”提供程序的便捷方法。
Parameters | |
---|---|
targetContext |
Context : The context to use as the basis of the IsolatedContext |
filenamePrefix |
String : A string that is prepended to file, database, and directory names |
providerClass |
Class : The type of the provider being tested |
authority |
String : The authority string to associated with the test provider |
databaseName |
String : The name assigned to the database |
databaseVersion |
int : The version assigned to the database |
sql |
String : A string containing the SQL statements that are needed to create the desired database and its tables. The format is the same as that generated by the sqlite3 tool's .dump command. |
Returns | |
---|---|
ContentResolver |
ContentResolver A new MockContentResolver linked to the provider |
Throws | |
---|---|
|
IllegalAccessException |
InstantiationException |
|
IllegalAccessException |
void setUp ()
设置测试夹具的环境。
创建一个新的 MockContentResolver
,一个隔离提供程序文件操作的新IsolatedContext和一个在隔离环境中测试的提供程序的新实例。
Throws | |
---|---|
异常 |
void tearDown ()
放弃测试夹具的环境。
呼吁 shutdown()
上 ContentProvider
由mProvider表示。
Throws | |
---|---|
异常 |