对应用进行单元测试:

使用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测试框架的更多相关文章

  1. Android -- junit测试框架,logcat获取log信息

    1. 相关概念 白盒测试: 知道程序源代码. 根据测试的粒度分为不同的类型   方法测试 function test         单元测试 unit test                 集成 ...

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

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  3. Android开源测试框架学习

    近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...

  4. [转]Android开源测试框架学习

    近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...

  5. Junit测试框架 Tips

    关于Junit测试框架使用的几点总结: 1.Junit中的测试注解: @Test →每个测试方法前都需要添加该注解,这样才能使你的测试方法交给Junit去执行. @Before →在每个测试方法执行前 ...

  6. Java高级特性 第10节 IDEA和Eclipse整合JUnit测试框架

    一.IDEA整合Junit测试框架 1.安装插件 打开File菜单的下拉菜单settings[设置] : 点击左侧Plugins[插件]菜单 在输入框中输入JUnitGenerator 2.0,点击I ...

  7. JUnit - 测试框架

    什么是 Junit 测试框架? JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量.JUnit 测试框架能够轻松完成以下任意两种结合: Ecli ...

  8. Java Junit测试框架

    Java    Junit测试框架 1.相关概念 Ø JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要 ...

  9. 使用Junit测试框架学习Java

    前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...

随机推荐

  1. web攻防

    1.内网渗透端口转发: 在被控制机上执行: lcx.exe -slave 216.32.*.*(一个外网ip) 51  192.168.2.32(内网ip)  端口号 在本机上执行: lcx.exe ...

  2. C++ - 复制(copy) 和 虚复制(virtual copy) 的 区别

    复制(copy) 和 虚复制(virtual copy) 的 区别 本文地址: http://blog.csdn.net/caroline_wendy/article/details/16120397 ...

  3. WLAN信道

  4. iOS 时间戳的转换

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...

  5. 关于通过jq /js 实现验证单选框 复选框是否都有被选中

    今天项目中遇到一个问题 就是要实现,单选框,复选框 同时都被选中才能进行下一步的问题,开始用js原生来写 怎么写都觉得不合适,通过for循环得出 复选框被选中的,在通过for循环得出单选框被选中的,问 ...

  6. MySql如何编写高效的SQL

    最近应团队要求,研究整理了下,mysql相关的优化,有些是根据实际java项目中碰到的情况经验之谈.欢迎讨论~ SQL 语言是一种强大而且灵活的语言,在使用 SQL 语言来执行某个关系查询的时候,用户 ...

  7. .Net Core下如何管理配置文件

    一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XX ...

  8. [.NET领域驱动设计实战系列]专题六:DDD实践案例:网上书店订单功能的实现

    一.引言 上一专题已经为网上书店实现了购物车的功能了,在这一专题中,将继续对网上书店案例进行完善,本专题将对网上书店订单功能的实现进行介绍,现在废话不多说了,让我们来一起看看订单功能是如何实现的吧. ...

  9. GEF: 图形拖拽处理

    重写EditPart#getDragTracker 即可替换拖拽事件.

  10. .NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy

    当我们要接到一个新的项目的时候,我们第一时间想到的是用微软的MVC框架,但是你是否想过微软的MVC是不是有点笨重?我们这个项目用MVC是不是有点大材小用?有没有可以替代MVC的东西呢?看到这里也许你会 ...