Android Junit测试框架

对应用进行单元测试:

使用Junit测试框架,是正规Android开发的必用技术。在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性。

1.配置指令集和函数库:

(1)配置指令集,指定要测试的应用程序

需要在AndroidManifest.xml的instrumentation中增加InstrumentationTestRunner,并指定要测试的包名。

AndroidManifest.xml中会添加代码:

<instrumentation android:targetPackage="com.example.firstdemo" android:name="android.test.InstrumentationTestRunner"></instrumentation>

(2)配置函数库

在Application中加<uses-library android:name="android.test.runner"/>

(3)加入Junit的jar包

项目右击-->Build Path-->Add Library-->JUnit-->JUnit4-->确定

2.编写单元测试代码(选择要测试的方法名,右击"Run As"....."Android Junit Test")

示例代码:

public class TestPersonDB extends AndroidTestCase{
    public void testCreateDB(){
        PersonSQLiteOpenHelper helper=new PersonSQLiteOpenHelper(getContext());
        SQLiteDatabase db=helper.getWritableDatabase();

    }

    public void testAdd(){
        PersonDao2 dao=new PersonDao2(getContext());
//        dao.add("wangwu", "123",5000);
//        dao.add("zhangsan", "321",2000);

        long num=8900000000000l;
        Random random=new Random();
        for (int i = 0; i < 50; i++) {
            dao.add("wangwu"+i, num+i+"", random.nextInt(5000));
        }
    }

    public void testFind(){
        PersonDao2 dao=new PersonDao2(getContext());
        boolean result=dao.find("wangwu");
        assertEquals(true, result); //断言:期待的值是true,真实的值是result
    }

    public void update(){
        PersonDao2 dao=new PersonDao2(getContext());
        dao.update("wangwu", "321");
    }

    public void delete(){
        PersonDao2 dao=new PersonDao2(getContext());
        dao.delete("wangwu");
    }

    public void findAll(){
        PersonDao2 dao=new PersonDao2(getContext());
        List<Person> persons=dao.findAll();
        for (Person person : persons) {
            System.out.println(person.toString());
        }

    }

    //用事务的方式实现银行转账
    public void testTransaction(){
        PersonSQLiteOpenHelper helper=new PersonSQLiteOpenHelper(getContext());
        SQLiteDatabase db=helper.getWritableDatabase();
        db.beginTransaction();
        try {
            //这两句执行代码要么都执行成功,要么都不成功
          db.execSQL("update person set account=account-1000 where name=?",new Object[]{"zhangsan"});
          db.execSQL("update person set account=account+1000 where name=?",new Object[]{"wangwu"});
          //标记数据库事务执行成功,默认执行是失败的,数据不会commit,会回滚
          db.setTransactionSuccessful();
        } finally {
          db.endTransaction();
          db.close();
        }

    }
}
时间: 07-17

Android Junit测试框架的相关文章

Android Junit测试框架的配置

instrumentation指令集需要在manifest节点下 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.junittest" /> uses-library 需要在application节点下 <uses-library android:name="android.t

无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.demo1" /> 上面targetPackage指定的包要和应用的package相同. (2)在清单文件中ap

Android开源测试框架学习

近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java代码,采用传统的Junit测试,开发人员通常会编写重要接口和函数的白盒测试代码,不做过多讨论. 但因Android的特殊运行机制(Dalvik虚拟机),其中存在Application.Activity.Service等特殊组件,而这些组件都涉及到生命周期管理的问题. 为了对这些组件进行测试,Goog

android junit 测试 简要步骤

android junit 测试 1.新建一个类继承TestCase这个类 2.AndroidManifest.xml, 加入<uses-library android:name="android.test.runner" /> <!-- 记住这个一要放在application外面,不然会出现配置错误 信息 -->      <instrumentation android:name="android.test.InstrumentationTe

Android兼容性测试框架(CTS)手册

了解老码农个人隐私,请看这里:http://www.koulianbing.com/?page_id=12 本文翻译自Android官方的CTS手册android-cts-manual-r4.pdf Android兼容性测试框架手册 1.为什么需要兼容性测试(以下称CTS)? 1.1.让APP提供更好的用户体验.用户可以选择更多的适合自己设备的APP.让APP更稳定. 1.2.让开发者设计更高质量的APP. 1.3.通过CTS的设备可以运行Androidmarket. 另外,CTS是免费的,而且

Junit测试框架 Tips

关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前运行.因为每个测试方法执行之前会先执行该方法,所以会被执行多次. @After →在每个测试方法执行后执行.因为每个测试方法执行之后会先执行该方法,所以会被执行多次. @BeforeClass →运行测试类,在该类中的每个测试方法执行之前被运行,只执行一次. @AfterClass →运行测试类,在

Spring整合Junit测试框架

在工作中,很多项目是基于ssm框架的web项目,在编写完代码需要进行测试.但是对象都交由Spring容器进行对象管理之后,测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次都要整个业务流做的差不多了再去测试,这样效率很低,很多同学可能是通过web端发请求进行触发测试.有时候,我们仅仅是需要测试我们dao层sql是否正确,但是确要重启服务器,在浏览器发送请求进行测试,或者写个定时器触发测试.这很费事费时.所以

Java Junit测试框架

Java    Junit测试框架 1.相关概念 ? JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要用于白盒测试,回归测试. ? 白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的. ? 回归测试:软件或环境的修复或更正后的再测试,自动测试工具对这类测试尤其有用. ? 单元测试:最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设

JUnit - 测试框架

什么是 Junit 测试框架? JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量.JUnit 测试框架能够轻松完成以下任意两种结合: Eclipse 集成开发环境 Ant 打包工具 Maven 项目构建管理 特性 JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 测试工具 测试工具是一整套固定的工具用于基线测试.测试工具的目的是为了确保测试能够在共享且固定的环境中运行,因此保证测试结果的可重复性.它包括: