在实际开发中,开发android软件的过程需要不断的进行测试。而是用Junit测试框架,则是正规android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性。
第一步:首先在AndroidManifest.xml中加入下面红色代码(把单元测试库引进到此项目中):
<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner"/>    ----引进单元测试库
        ......
</manifest>
<uses-sdk android:minSdkVersion="15" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.hw.hua" android:label="Tests for My App"/>
解释:第二句红色部分:
    1、配置单元测试框架的入口类
    2、android:name="android.test.InstrumentationTestRunner"这部分不用更改
    3、但android:targetPackage属性指定单元测试类所在的包,也就是说,单元测试类建在那个包下,就应该把那个包赋给这个属性。这个包一般是和应用的包同名。
    4、android:label="Tests for My App" 属性可要可不要,名称可要随便取
第二步:
编写单元测试代码(在Outline中选择要测试的方法,右键点击“Run As”-->"Android Junit Test")
代码如下:
manifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hw.hua"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk android:minSdkVersion="15" />

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner"/>
        <activity
            android:name=".AccessOtherApp"
            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>
    <instrumentation android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.hw.hua" android:label="Tests for My App"/>
       
</manifest>

业务类:
package com.hw.service;

public class PersonService {
 public void save() {
  String str = "aaa";
  int i = new Integer(str);
 }
}

测试类:

package com.hw.hua;

import com.hw.service.PersonService;

import android.test.AndroidTestCase;
//junit3框架要求,方法名称前要加test
//方法最好抛出异常处理,在junit3框架中其实是有一个try、、、catch包在方法外面的,当程序出错时,单元测试框架会捕获异常,并打印在控制台
public class PerserServiceTest extends AndroidTestCase {
 public void testSave() throws Throwable {
  PersonService service = new PersonService();
  service.save();//检验save()方法运行是否正常
 }
}

此时,这个程序会报错,深红色代表出错。

单元测试除了要判断方法执行是否成功外,还要判断方法的处理结果是否符合我们期望的要求,如下:
将上面的修改:
业务类:
package com.hw.service;

public class PersonService {
 public int save() {
  String str = "77";
  int i = new Integer(str);
  return i;
 }
}

测试类:使用了Assert

执行后,报错:
junit.framework.AssertionFailedError: expected:<55> but was:<77>
at com.hw.hua.PerserServiceTest.testSave(PerserServiceTest.java:14)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:537)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551)

解释:
业务类会返回一个值,假如,你写代码的目的是为了让其返回55,你就要测试返回结果是不是55,通过Assert.assertEquals(55, i);判断处理结果是否正常。
如果报错,说明断言的值和返回的值不同,就可以知道,业务类中的逻辑不对

当在Outline中选择要测试的方法,右键点击“Run As”-->"Android Junit Test"时,会把单元测试项目部署到模拟器,并在模拟器中运行这个单元测试用例。

android单元测试AndroidTestCase相关推荐

  1. android单元测试demo,android单元测试AndroidTestCase

    在实际开发中,开发android软件的过程需要不断的进行测试.而是用Junit测试框架,则是正规android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 比如 ...

  2. android 单元测试 assert,android单元测试AndroidTestCase

    在实际开发中,开发android软件的过程需要不断的进行测试.而是用Junit测试框架,则是正规android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. 第一 ...

  3. Android 单元测试

    这个写的也不错: http://jingyan.baidu.com/article/c1465413a105b00bfcfc4c18.html 下面是自己的: 今天在群里说面试的事情,问需要什么技术. ...

  4. android单元测试作用,Android单元测试源码解读

    Android手机操作系统是一个开源的操作系统.程序员们可以在模拟器的帮助下对其进行修改,来实现各种功能需求,满足用户的应用.在这里我们先来了解一下Android单元测试的相关内容. 在网络上找了半天 ...

  5. 如何进行Android单元测试

    2019独角兽企业重金招聘Python工程师标准>>> Menifest.xml中加入: <application>中加入: <uses-library andro ...

  6. Android——单元测试

    在实际开发中,开发android软件的过程需要不断地进行测试.而使用Junit测试框架,侧是正规的Android开发 的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性. ...

  7. (转)Android单元测试

    关键字: camera unit test android源代码中每个app下中都自带了一个test用例,下面主要介绍下camra单元测试用例 在AndroidManifest.xml中标明了测试用例 ...

  8. 初级——如何进行Android单元测试

    本文是转载的,希望对大家有所帮助! Menifest.xml中加入:  <application>中加入:  <uses-library android:name="and ...

  9. Android单元测试读写文件,Android-单元测试

    Android的单元测试有两种方式:本地单元测试和设备单元测试,本地单元测试可以直接运行在本地机器上面的Java Virtual Machine(JVM).它的特点是运行时间短,执行效率高,但是没有A ...

最新文章

  1. python篮球-基于Python/Java的人工智能篮球训练系统的制作方法
  2. DFTug - Architecture Your Test Design
  3. Python数据结构与算法(第一天)
  4. 概念理解#1 第一类公民(First-class Citizen)
  5. python中协程与函数的区别_深入浅析python 协程与go协程的区别
  6. 服务器保存excel文件慢,从使用IE的服务器缓慢地保存Excel文件
  7. java多线程生命周期
  8. ProgressDialog知识要点
  9. struts 模块化开发学习
  10. java configuration_关于JAVA 中的Configuration类
  11. iOS 之 获取View所在控制器
  12. JavaScript对象的创建之外部属性定义方式(基于已有对象扩充其属性和方法)
  13. SIP协议-01 简介与入门
  14. u盘无法格式化不在计算机中,u盘被写保护无法格式化怎么办 u盘无法格式化原因及解决...
  15. qt.qpa.plugin: Could not find the Qt platform plugin “xcb“ in ““ 详细解决办法
  16. Excel:列的顺序颠倒(d-a列变成a-d列)
  17. 数据库的维护工作主要包括哪些方面
  18. windows 图标文件在哪里?
  19. Linux xampp apache启动失败解决办法
  20. 给new comer程序员的建议

热门文章

  1. 达梦V8使用dmrman恢复数据库
  2. CART回归树原理及python实现
  3. 源码解析:Spring源码解析笔记(五)接口设计总览
  4. 尚好房 04_服务拆分
  5. [zz] Android五大布局Layout详解
  6. 关于超细六类网线用于PoE的说明
  7. 【论文解读:bCNN-Methylpred: Feature-Based Prediction of RNA Sequence Modification Using Branch Convoluti】
  8. 优秀课件笔记之计算机网络基础
  9. Distiller:正则化
  10. Linux 二进制文件调试命令