Android(java)学习笔记108:Android的Junit调试
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,代码内容如下:
package com.itheima.junit.service; /**
* 计算器的业务类 完成加减乘除的操作
*
*/
public class CalcService {
/**
* 两个数字相加
* @param x
* @param y
*/
public int add(int x,int y){
return x+y;
} }
这里就是一个简单实现加法的逻辑方法
(3)前面我们已经编写好了待测试的业务逻辑类,下面自然就是编写测试代码,这个测试代码我们再新建一个包:com.itheima.junit.test包中,这个测试类我们命名为
TestCalService.java,继承自AndroidTestCase,这里这样命名就会见名知意,很明显知道这是测试CalService用途的。测试代码内容如下:
package com.itheima.junit.test; import com.itheima.junit.service.CalcService; import android.test.AndroidTestCase;
/**
* 1. android下的测试代码 一定记得继承一个父类AndroidTestCase
*/
public class TestCalcService extends AndroidTestCase{ /**
* 2.编写测试方法记得 说有的测试方法 都应该是public
* 记得让测试方法直接抛出异常,不能在方法内部try...catch,这是捕获异常,我们这里必须抛出异常,让用户知道
* 根据需求进行断言操作 assert
*/
public void testAdd() throws Exception{
CalcService calcService = new CalcService();
int result = calcService.add(3, 5);
assertEquals(8, result);
}
}
(4)配置AndroidManifest.xml清单文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itheima.junit"
android:versionCode="1"
android:versionName="1.0" >
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.itheima.junit"></instrumentation>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner"/>
<activity
android:name="com.itheima.junit.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>
(5)进入J2EE模式,如下:

运行之后,等待系统会布署代码到模拟器或真机上,在模拟器或真机上面运行成功之后,会反馈测试结果该Eclipse,报错的会也会告知Eclipse,成功了也会告知Eclipse。
Android(java)学习笔记108:Android的Junit调试的更多相关文章
- Android开发学习笔记-关于Android的消息推送以及前后台切换
		
下面是最简单的Android的消息推送的实现方法 package com.example.shownotic; import java.util.Random; import android.supp ...
 - Android 数字签名学习笔记
		
Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...
 - Android自动化学习笔记:编写MonkeyRunner脚本的几种方式
		
---------------------------------------------------------------------------------------------------- ...
 - Android动画学习笔记-Android Animation
		
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
 - Android:日常学习笔记(6)——探究活动(4)
		
Android:日常学习笔记(6)——探究活动(4) 活动的启动模式 standard模式 standard是活动默认的启动模式,在不进行显示定义的情况下,所有活动都会自动使用这种启动模式. stan ...
 - Android:日常学习笔记(2)——分析第一个Android应用程序
		
Android:日常学习笔记(2)——分析第一个Android应用程序 Android项目结构 整体目录结构分析 说明: 除了APP目录外,其他目录都是自动生成的.APP目录的下的内容才是我们的工作重 ...
 - Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
		
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
 - Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
		
---------------------------------------------------------------------------------------------------- ...
 - android开发学习笔记000
		
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...
 - Android学习笔记1 android adb启动失败问题 adb server is out of date. killing...
		
下面是Android的学习笔记,原文地址. 我是使用adb devices出现如下红字错误, 使用第一种方法方法,结果关掉豌豆荚就可以了. android adb启动失败问题 adb server i ...
 
随机推荐
- JEECMS-新闻内容中遍历批量上传的图片
			
[#list content.pictures as p] <li value="${p_index+1}"> <img src="${p.imgPat ...
 - conntrack-tools使用
			
基础用法 系统配置 ### 开启流数据包统计(packets和bytes) # echo "net.netfilter.nf_conntrack_acct=1" >> ...
 - lightoj1010【规律】
			
思路: 根据案例的规律其实已经猜的差不多了,answer=n*m/2; 有一条边是1的情况,也很好判断,answer=n*m; 就是有一条边是2的时候比较隐秘:是连续2*2一块可以填,然后2*2不填, ...
 - [nyoj]会场安排问题-贪心
			
会场安排问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...
 - Python绘制正态分布曲线
			
使用Python绘制正态分布曲线,借助matplotlib绘图工具: \[ f(x) = \dfrac{1}{\sqrt{2\pi}\sigma}\exp(-\dfrac{(x-\mu)^2}{2 ...
 - uva12186 Another Crisis
			
题目大意: 世界危机发生了,工人们请求加薪.一个老板和n个员工组成树状结构,每个员工都有自己的唯一上司,Boss的编号为0,员工1~n,工人们打算签署一个志愿书给老板,但无法跨级,当一个中级员工(非是 ...
 - 一些我推荐的和想上的网络课程(Coursera, edX, Udacity)
			
从面向找工作的角度出发,我觉得以下课程有很大帮助: 首推Robert Sedgewick,也是我觉得对我帮助最大的老师,讲课特点是能把复杂的算法讲解清楚(典型例子:红黑树,KMP算法) 他在Cours ...
 - Kali Linux 工具清单
			
Kali Linux 工具清单 Information Gathering acccheck ace-voip Amap Automater bing-ip2hosts braa CaseFile C ...
 - shell学习(8)- ulimit调优系统参数
			
ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何 ...
 - [软件工程基础]Alpha 阶段发布说明
			
新功能 增加了题库界面,其上有历届考试资料 系统已知的问题和限制 物理实验报告的收藏功能还无法使用 物理实验报告还不能评论 题库界面显示有些问题 最主要的生成实验报告功能在绝大多数安卓平台上显示&qu ...