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();
}
}
}
Android Junit测试框架的更多相关文章
- Android -- junit测试框架,logcat获取log信息
1. 相关概念 白盒测试: 知道程序源代码. 根据测试的粒度分为不同的类型 方法测试 function test 单元测试 unit test 集成 ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- Android开源测试框架学习
近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...
- [转]Android开源测试框架学习
近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...
- Junit测试框架 Tips
关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...
- Java高级特性 第10节 IDEA和Eclipse整合JUnit测试框架
一.IDEA整合Junit测试框架 1.安装插件 打开File菜单的下拉菜单settings[设置] : 点击左侧Plugins[插件]菜单 在输入框中输入JUnitGenerator 2.0,点击I ...
- JUnit - 测试框架
什么是 Junit 测试框架? JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量.JUnit 测试框架能够轻松完成以下任意两种结合: Ecli ...
- Java Junit测试框架
Java Junit测试框架 1.相关概念 Ø JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要 ...
- 使用Junit测试框架学习Java
前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...
随机推荐
- maven环境终于可以了
说说maven可以后小小的体会吧,虽然还没有用maven运行过工程,体会是pom.xml中的dependency属性可以帮助管理项目中的jar包,只要在这里配置下需要的jar包,保存后就会自动从中央仓 ...
- [Cocoa设计模式] 动态创建
Cocoa利用底层Objective-C运行时的很多特性,包括能够创建在应用程序编译时不存在的类的实例并在运行时动态加载和链接新类.诸如Ruby, Perl, Python之类的脚本语言就利用这种技术 ...
- Logger的等级输出
转自:http://zhidao.baidu.com/link?url=7HnNxxUei6m3X3JOLfK4yShElbu5xwvU9Z7ipBAaIvQOi3Bc30N-7o7JgfnZDEg3 ...
- Happy Programming Contest(ZOJ3703)(01背包+路径储存)
Happy Programming Contest ZOJ3703 老实说:题目意思没看懂...(希望路过的大神指点) 最后那个the total penalty time是什么意思啊!!! 还是学 ...
- [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续
英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...
- idlcpp 功能改进
最近没有续写 idlcpp 的教程, 因为忙着对它进行大幅度的修改. 一开始本是计划用idlcpp对付新写的代码,让这些新写的代码能够很容易提供给脚本使用.后来又希望能将大量现存的代码移植过来,毕竟有 ...
- smartroute简单集成集群聊天通讯
在制定一个规模比较多大的聊天应用时,往往需要制定部署多个应用服务,其一可以保障服务的可靠性,其二可以增加用户负载量.但制定这样一种应用体系是一件复杂的事情,毕竟同一群体的用户实际上会在不同的服务器接入 ...
- C#动态调用WCF
public class WcfChannelFactory { public WcfChannelFactory() { } /// <summary> /// 执行方法 WSHttpB ...
- 软将工程课设day1与day2
在稍迟的时候,收集了三份用户体验,自己编辑整理之后上交于组. 和老师确定了一下每日的工作流程与需要提交的任务. 与组讨论了软件优化方向,包括整理收集到的“反馈信息”.“额外需求信息”.“体验信息”.
- 人人都是 DBA(XV)锁信息收集脚本汇编
什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...