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将结果输 ...
随机推荐
- ajax 跨域请求时url参数添加callback=?会实现跨域问题
例如: 1.在 jQuery 中,可以通过使用JSONP 形式的回调函数来加载其他网域的JSON数据,如 "myurl?callback=?".jQuery 将自动替换 ? 为正确 ...
- 找回消失的ASUS显卡
笔记本蓝屏了几次之后,发现独立显卡GT335M不见了,设备管理器,驱动精灵,都找不到,网上问这个问题的人还不少,得到的回答几乎都是说重装驱动.根本不行,这时候安装nVIDIA驱动,会提示说“未找到兼容 ...
- jQuery+ASP.NET MVC基于CORS实现带cookie的跨域ajax请求
这是今天遇到的一个实际问题,在这篇随笔中记录一下解决方法. ASP.NET Web API提供了CORS支持,但ASP.NET MVC默认不支持,需要自己动手实现.可以写一个用于实现CORS的Acti ...
- 即时通信系统中如何实现:全局系统通知,并与Web后台集成?【低调赠送:QQ高仿版GGTalk 5.1 最新源码】
像QQ这样的即时通信软件,时不时就会从桌面的右下角弹出一个小窗口,或是显示一个广告.或是一个新闻.或是一个公告等.在这里,我们将其统称为“全局系统通知”.很多使用GGTalk的朋友都建议我加上一个类似 ...
- javascript 设计模式-----观察者模式
观察者模式在设计模式中被重点提到,因为它应用的场景非常多,而且在模块化设计当中扮演着非常重要的角色.MVC模式中最底层的就是观察者模式,当下流行的javascript框架backbone就是很好地运用 ...
- 【C语言学习】《C Primer Plus》第12章 存储类、链接和内存管理
学习总结 1.作用域可分为代码块作用域.函数原型作用域或者文件作用域. 代码块作用域例子: { for(int i=0;i<10;i++){ //C99允许 … //i的作用域 } ... ...
- 补充 作业八:团队项目——Alpha阶段项目总结 补充
游戏界面: 单一.无背景图片 加入了背景 游戏结束: 无变化 无变化 游戏记录 无 加入数据库:有数据记录! 游戏初始化: 无 加入多种模式 此次任务后的总结: 经过上一次的答辩,以及认真观看了其他组 ...
- angularjs移除不必要的$watch
在我们的web page,特别是移动设备上,太多的angular $watch将可能导致性能问题.这篇文章将解释如何去移除额外的$watch提高你的应用程序性能. $watch如果不再使用,我们最好将 ...
- Effective c#学习笔记(1)
条款1 使用属性代替可访问的数据成员 属性是个啥,谁在用? 1. C#的属性在被访问的时候看起来好像是数据成员,但其实是方法. 2. 在.NET框架中,一般使用属性表达公有数据成员. ...
- 微信分享调用 -- c#篇
微信分享调用JS -- c#篇 1.前端 1.1 导入微信端的JS 如果你的网址是http,则地址为 http://res.wx.qq.com/open/js/jweixin-1.0.0.js ...