1. Android的Junit调试:

编写android应用的时候,往往我们需要编写一些业务逻辑实现类,但是我们可能不能明确这个业务逻辑是否可以成功实现,特别是逻辑代码体十分巨大的时候,我们不可能一行一行检查自己的代码,为了解决这样的问题就出现了:

   Android下编写单元测试代码-----Junit Test

测试逻辑是:在Eclipse我们待测试项目中编写测试代码,然后运行测试代码,系统会把代码布署到模拟器或者真机中,代码运行之后,会反馈测试结果给Eclipse,用户就知道业务逻辑类是否可以成功实现。

首先我们明确Android下编写单元测试代码的步骤:

  ()编写测试类,extends AndroidTestCase

  ()编写测试方法, 修饰符是public,直接抛出异常给测试框架 throws Exception,记得让测试方法直接抛出throws异常,不能在方法内部try...catch,这是捕获异常,我们这里必须抛出异常,让用户知道.

  ()进行断言

  ()清单文件配置 在application节点配置<uses-library android:name="android.test.runner"/> 在manifest节点里面配置<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="当前应用程序的包名">

  ()运行测试用例。绿条测试通过,红条测试失败.

2. Android的Junit调试案例:

(1)首先我们建立一个android项目,命名为:01_测试用例,如下图:

(2)这里我们还没有对主程序进行编写,我们先编写一个义务逻辑类CalcService.java,放到我们业务实现包com.itheima.junit.service,代码内容如下:

  1. package com.itheima.junit.service;
  2. /**
  3. * 计算器的业务类 完成加减乘除的操作
  4. *
  5. */
  6. public class CalcService {
  7. /**
  8. * 两个数字相加
  9. * @param x
  10. * @param y
  11. */
  12. public int add(int x,int y){
  13. return x+y;
  14. }
  15. }

这里就是一个简单实现加法的逻辑方法

(3)前面我们已经编写好了待测试的业务逻辑类,下面自然就是编写测试代码,这个测试代码我们再新建一个包:com.itheima.junit.test包中,这个测试类我们命名为

TestCalService.java,继承自AndroidTestCase,这里这样命名就会见名知意,很明显知道这是测试CalService用途的。测试代码内容如下:

  1. package com.itheima.junit.test;
  2. import com.itheima.junit.service.CalcService;
  3. import android.test.AndroidTestCase;
  4. /**
  5. * 1. android下的测试代码 一定记得继承一个父类AndroidTestCase
  6. */
  7. public class TestCalcService extends AndroidTestCase{
  8. /**
  9. * 2.编写测试方法记得 说有的测试方法 都应该是public
  10. * 记得让测试方法直接抛出异常,不能在方法内部try...catch,这是捕获异常,我们这里必须抛出异常,让用户知道
  11. * 根据需求进行断言操作 assert
  12. */
  13. public void testAdd() throws Exception{
  14. CalcService calcService = new CalcService();
  15. int result = calcService.add(3, 5);
  16. assertEquals(8, result);
  17. }
  18. }

(4)配置AndroidManifest.xml清单文件如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.itheima.junit"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6. <instrumentation android:name="android.test.InstrumentationTestRunner"
  7. android:targetPackage="com.itheima.junit"></instrumentation>
  8. <uses-sdk
  9. android:minSdkVersion="8"
  10. android:targetSdkVersion="17" />
  11. <application
  12. android:allowBackup="true"
  13. android:icon="@drawable/ic_launcher"
  14. android:label="@string/app_name"
  15. android:theme="@style/AppTheme" >
  16. <uses-library android:name="android.test.runner"/>
  17. <activity
  18. android:name="com.itheima.junit.MainActivity"
  19. android:label="@string/app_name" >
  20. <intent-filter>
  21. <action android:name="android.intent.action.MAIN" />
  22. <category android:name="android.intent.category.LAUNCHER" />
  23. </intent-filter>
  24. </activity>
  25. </application>
  26. </manifest>

 

(5)进入J2EE模式,如下:

运行之后,等待系统会布署代码到模拟器或真机上,在模拟器或真机上面运行成功之后,会反馈测试结果该Eclipse,报错的会也会告知Eclipse,成功了也会告知Eclipse。

Android(java)学习笔记165:Android的Junit调试的更多相关文章

  1. Android开发学习笔记-关于Android的消息推送以及前后台切换

    下面是最简单的Android的消息推送的实现方法 package com.example.shownotic; import java.util.Random; import android.supp ...

  2. Android 数字签名学习笔记

    Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...

  3. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  4. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  5. Android:日常学习笔记(6)——探究活动(4)

    Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...

  6. Android:日常学习笔记(2)——分析第一个Android应用程序

    Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...

  7. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  8. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

    ---------------------------------------------------------------------------------------------------- ...

  9. android开发学习笔记000

    使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...

  10. Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...

    下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...

随机推荐

  1. linux设备驱动那点事儿之平台设备理论篇

    一:Platform总线 1.1概述 一个现实的linux设备驱动通常需要挂接在一种总线上,对于本身依附于PCI,USB,IIC,SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SOC系统中 ...

  2. 应付期间 Payables Periods

    (N) AP > Accounting > Control payables periods Click [Period Status] column to Open.

  3. 结构体dfield_t

    /* SQL data field struct */ typedef struct dfield_struct dfield_t; /** Structure for an SQL data fie ...

  4. Codevs_1403_新三国争霸_(Kruskal+动态规划)

    描述 http://codevs.cn/problem/1403/ 共t天,n个点,m条边,选择每条边要付出不同的代价,其中某些天某些边不能用,要保证每一天n个点都是连通的,如果换方案要付出额外的代价 ...

  5. Luogu_1565_牛宫_(最大子矩阵)

    描述 http://www.luogu.org/problem/show?pid=1565 给出一个n*m的矩阵,求最大的且和值为正的子矩阵. 分析 很容易想到的是用前缀和维护,暴力枚举左上角和右下角 ...

  6. SharePoint 2010 部署 WSP 包

    转:http://www.cnblogs.com/myheaven/archive/2011/05/19/2051180.html .net在工程的下面生成了WSP包,在Debug下面.需要放到生产环 ...

  7. 从头开始编写一个Orchard网上商店模块(3) - 创建Orchard.Webshop模块项目

    原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...

  8. VC一些经验系列: 《分享泄漏检测工具:内存、DC、GDI、Handle... 》

    分享下自己工作中用到的一些用于泄漏检测的工具 后面的是DC的一些定义和注意事项.(不喜勿看) //=================================================== ...

  9. HDU 2682

    思路:由于题目对能相连的点有限制,必须将这些点处理,能相连的点合并到一个集合中,最后查看是否所有点都在一个集合里,若都在说明是一个连通图,存在最小生成树,否则图不连通,不存在最小花费. #includ ...

  10. VS2013 MVC Web项目使用内置的IISExpress支持局域网内部机器(手机、PC)访问、调试

    VS2013内置了IISExpress.做asp.net MVC的web项目开发时,Ctrl+F5和F5启动项目运行(后者是调试模式)的同时都会打开IISExpress,事实上本机对该web项目走的就 ...