6、Android Content Provider测试
2016-06-15 18:37
495 查看
如果你的应用中使用了Content Provider来与其他应用进行数据交互,你需要对Content Provider进行测试来确保正常工作。
Content Provider允许你访问真实的用户数据,所以必须在一个隔离的测试环境中来测试你的Content Provider。这就意味着你的测试不会更改真实的用户数据。
在隔离状态下测试Content Provider,需要使用ProviderTestCase2类。这个类允许你使用Android虚拟对象类比如IsolatedContext和MockContentResolver来在不影响真实用户数据的情况下访问文件和数据库信息。
你的整合测试类需要写为Junit4测试类风格。
为了创建Content Provider整合测试类,你需要执行如下几步:
1、 创建ProviderTestCase2的测试子类。
2、 添加 @RunWith(AndroidJUnit4.class) 注解到测试类开始的地方。
3、 声明AndroidJUnitRunner类
4、 设置Context
代码如下:
初始化在ProviderTestCase2的构造函数中完成,并且在子类的构造函数中调用。ProviderTestCase2构造函数创建一个IsolatedContext对象允许你访问文件和数据库操作,但是与Android系统隔离。
构造函数创建一个MockContentResolver来作为测试的resolver。
最后,构造函数在测试状态下创建一个Content Provider的实例。这是一个正常的Content Provider对象。但是所有的环境信息都是来时IsolatedContext中。所以你的测试工作严格的限制在一个隔离的测试环境中。
2、 测试你的Content Provider暴露的常量;测试你的Content Provider提供的URI;测试URI的有效性。
3、 测试Content Provider标准的交互。
4、 测试你的商业逻辑。
本文作者:宋志辉
个人微博:点击进入
创建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、 测试你的商业逻辑。
本文作者:宋志辉
个人微博:点击进入
相关文章推荐
- 【Android】使用MediaCodec硬编码实现视频直播推流端(一)
- Locale.US
- android studio 更新 Gradle错误解决方法
- Android 获取系统时间的三种方式
- android自定义进度条
- android image不显示
- Android 获取联系人电话号码
- android的ViewPager实现自动播放
- Android 有用的快捷键
- Android 实现在Activity中操作刷新另外一个Activity数据列表(①、②广播)
- Window 平台 FFmpeg Android .so文件编译
- 最详细的 Android Toolbar 开发实践总结
- window+git+AndroidStudio+github
- android canvas 画闹钟 圆弧
- ANDROID – TOOLBAR STEP BY STEP
- android 减小apk安装包大小方法及相关优化
- Android必知必会-Android Studio修改包名
- Android必知必会-Android Studio修改包名
- Android必知必会-Android Studio修改包名
- Android5.0的三大变化