6、Android Content Provider测试

如果你的应用中使用了Content Provider来与其他应用进行数据交互,你需要对Content Provider进行测试来确保正常工作。

创建Content Provider整合测试

在Android中,app将Content Provider视为数据API。一个Content Provider可能会有public 常量。
Content Provider允许你访问真实的用户数据,所以必须在一个隔离的测试环境中来测试你的Content Provider。这就意味着你的测试不会更改真实的用户数据。
在隔离状态下测试Content Provider,需要使用ProviderTestCase2类。这个类允许你使用Android虚拟对象类比如IsolatedContext和MockContentResolver来在不影响真实用户数据的情况下访问文件和数据库信息。
你的整合测试类需要写为Junit4测试类风格。
为了创建Content Provider整合测试类,你需要执行如下几步:
1、 创建ProviderTestCase2的测试子类。
2、 添加 @RunWith(AndroidJUnit4.class) 注解到测试类开始的地方。
3、 声明AndroidJUnitRunner类
4、 设置Context
代码如下:

@Override
protected void setUp() throws Exception {
    setContext(InstrumentationRegistry.getTargetContext());
    super.setUp();
}

ProviderTestCase2如何工作

你通过ProviderTestCase2的子类来对Content Provider进行测试。这个基类扩展自AndroidTestCase,所以它提供了Junit 测试框架和Android特有的测试应用的方法。最重要的特性就是这个类的初始化创建了一个隔离的测试环境。
初始化在ProviderTestCase2的构造函数中完成,并且在子类的构造函数中调用。ProviderTestCase2构造函数创建一个IsolatedContext对象允许你访问文件和数据库操作,但是与Android系统隔离。
构造函数创建一个MockContentResolver来作为测试的resolver。
最后,构造函数在测试状态下创建一个Content Provider的实例。这是一个正常的Content Provider对象。但是所有的环境信息都是来时IsolatedContext中。所以你的测试工作严格的限制在一个隔离的测试环境中。

测试什么

1、 测试resolver方法
2、 测试你的Content Provider暴露的常量;测试你的Content Provider提供的URI;测试URI的有效性。
3、 测试Content Provider标准的交互。
4、 测试你的商业逻辑。

本文作者:宋志辉
个人微博:点击进入

时间: 2024-09-20 05:42:00

6、Android Content Provider测试的相关文章

Android Content Provider详解及示例代码_Android

Android:Content Provider的使用. 1.Content Provider 简介 2.使用现成的Content Provider 3.定义自己的Content Provider 一.Content Provider 简介 我们说Android应用程序的四个核心组件是:Activity.Service.Broadcast Receiver 和 Content Provider.在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中.Content Pro

Android Content Provider详解及示例代码

Android:Content Provider的使用. 1.Content Provider 简介 2.使用现成的Content Provider 3.定义自己的Content Provider 一.Content Provider 简介 我们说Android应用程序的四个核心组件是:Activity.Service.Broadcast Receiver 和 Content Provider.在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中.Content Pro

浅谈Android Content Provider的使用_Android

Content Provider:一个组件,必须放在应用的主包或应用的子包之下: 组件的配置需要在清单文件中进行配置:content provider需要在application节点中进行配置:内容提供者在应用中的作用是对外共享数据(任意类型的数据)使用的,别的程序可以对数据进行CRUD,如通讯录:如果采用文件的方式对外共享数据,会因为文件的类型不同而需要使用不同的api访问方式导致访问繁杂,而内容提供者提供了统一的api对数据进行操作:<provider android:name=".P

android Content Provider

内容提供者即Content Provider,Content Provider提供了一个接口用来共享自己的数据,包括自己的私有数据.其他程序通过Content Resolve来使用这些数据. 当应用需要通过ContentProvider对外共享数据时,第一步需要创建一个类继承ContentProvider并重写下面方法: public class PersonContentProvider extends ContentProvider{       public boolean onCreat

Android测试教程(7):测试Content Provider

Content Provider 为不同的应用访问数据提供了统一的接口,本篇介绍Android测试包中用于测试Content Provider 的相关 知识. Android 测试包中用于测试Content Provider的基本类为ProviderTestCase2, 允许你在一个隔离环境下来测试 Content Provider. 并提供了一些Mock类如IsolatedContext ,MockContentResover 来辅助测试. 和其它测试一样,对 于Content Provide

android的Content Provider组件怎么考虑安全问题

问题描述 android的Content Provider组件怎么考虑安全问题 Content Provider组件怎么做到安全,有没有一些好的方法, 解决方案 Android 组件Content Providerandroid组件之Content Provider 解决方案二: http://stackoverflow.com/questions/6120025/how-to-restrict-content-provider-data-across-applications

Android开发四大组件Activity/Service/Broadcast Receiver/Content Provider详解

Android开发的四大组件一.Activity详解二.Service详解三.Broadcast Receiver详解四.Content Provider详解外加一个重要组件 intent的详解. 一.Activity详解 Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()-->onStart()-->onResume() 当另一个Activity启动时:第一个Activity onPause()-->第二个Activity  

Android开发与测试教程

Android简明开发教程一:概述 Android简明开发教程二:安装开发环境 Android简明开发教程三:第一个应用Hello World Android简明开发教程四:Android应用基本概念 Android简明开发教程五:Activities Android简明开发教程六:用户界面设计 Android简明开发教程七:Intents和Intent Filters Android简明开发教程八:引路蜂二维图形绘制实例功能定义 Android简明开发教程九:创建应用程序框架 Android简

browser-如何使用浏览器的 content provider?

问题描述 如何使用浏览器的 content provider? 我创建了下面简单的代码从浏览器中获得书签: public class BroswerProviderActivity extends ListActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Cursor cursor = get