博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Junit测试框架
阅读量:5739 次
发布时间:2019-06-18

本文共 2513 字,大约阅读时间需要 8 分钟。

对应用进行单元测试:

使用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
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(); } }}

 

转载于:https://www.cnblogs.com/Joanna-Yan/p/4657390.html

你可能感兴趣的文章
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
代码分析系列 内存执行过程
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>
JQuery日记_5.13 Sizzle选择器(六)选择器的效率
查看>>
oracle查看经常使用的系统信息
查看>>
Django_4_视图
查看>>
Linux的netstat命令使用
查看>>
lvm讲解,磁盘故障小案例
查看>>
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>
thymeleaf 学习笔记-基础篇
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
工作中如何做好技术积累
查看>>
怎么用sysLinux做U盘双PE+DOS??
查看>>