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调试的更多相关文章

  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. HDU - 3899 JLUCPC(树形dp求距离和)

    JLUCPC Dr. Skywind and Dr. Walkoncloud are planning to hold the annual JLU Collegiate Programming Co ...

  2. SQL Server(三)

    一.数据库操作 create database 数据库名称 ——创建drop database 数据库名称 ——删除use 数据库名称 ——使用go 两条SQL语句之间分隔 二.表的操作 create ...

  3. CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目

    原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...

  4. pandas基础(2)_多重索引

    1:多重索引的构造 >>> #下面显示构造pd.MultiIndex >>> df1=DataFrame(np.random.randint(0,150,size= ...

  5. h5模型文件转换成pb模型文件

      本文主要记录Keras训练得到的.h5模型文件转换成TensorFlow的.pb文件 #*-coding:utf-8-* """ 将keras的.h5的模型文件,转换 ...

  6. 添加自定义字段至Solr 的 ExtractingRequestHandler

    利用SolrJ 上传文件至Solr进行索引,比如索引一个test.pdf文件,我想在索引里添加一个文件名的字段,我在manager-schema里添加了一个字段,为“fileName”, 然后按照 g ...

  7. codevs 3342绿色通道

    3342 绿色通道  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold

  8. 静态文件与APP

    目录 静态文件的配置和使用 什么是静态文件? 为什么使用静态文件 如何配置,使用静态文件 静态文件相关(动态配置) app创建预注册 app指什么? 创建一个APP 注册app app文件作用 app ...

  9. 利用正则取出Stirng中“”引号内的内容

    // 取出所有""中间的内容,正则如下 Pattern pattern1 = Pattern.compile("(?<=\")([\\S]+?)(?=\& ...

  10. 聊聊ES6中的generator

    generatorgenerator(生成器)是ES6标准引入的新的数据类型.一个generator看上去像一个函数,但函数执行中间可以停止. ES6定义generator标准的哥们借鉴了Python ...