zoukankan      html  css  js  c++  java
  • 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、 测试你的商业逻辑。

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

  • 相关阅读:
    [Web 前端] CSS 盒子模型,绝对定位和相对定位
    [Android Pro] 跨平台反编译工具 jadx (ubuntu亲测 可用)
    [Web 前端] Jquery 复制元素,并修改属性, 追加到另一个元素后面
    [Web 前端 ] Jquery attr()方法 获取或修改 对象的属性值
    [Web 前端] Jquery实现可直接编辑的表格
    [Web 前端] td长度固定,内容过长,超过部分用省略号代替
    [Network] okhttp3与旧版本okhttp的区别分析
    [Android Pro] AndroidStudio IDE界面插件开发(进阶篇之Editor)
    graph embedding 使用方法
    win10 'make' 不是内部或外部命令
  • 原文地址:https://www.cnblogs.com/hainange/p/6153448.html
Copyright © 2011-2022 走看看