• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 安卓006单元测试

安卓006单元测试

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了安卓单元测试,安卓中的单元测试,安卓开发单元测试,安卓ui测试工具,安卓ui真机测试等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

安卓006单元测试


Android 测试,日志

测试

常见测试分类
在介绍Android Junit前先介绍一下常见的测试分类。

 


根据是否知道源程序源码:


 黑盒测试:不知源码,只是测试程序的功能
 白盒测试:知道源码,根据源代码进行测试

 


根据测试的粒度:(模块的大小)


 单元测试:unit test
 功能测试:function test:方法测试
 整合测试:integration test:几个模块的测试,服务器/客户端的联调
 系统测试:system test

 


根据测试的次数:(暴力测试)

 

 冒烟测试:smoke test,不停的执行操作,直到系统崩溃

Google提供了一个monkey
Adb shell:进入模拟器目录,monkey
2000,通过monkey是随机点击2000次
monkey –p 包名 次数:只测试某个应用程序


 压力测试:pressure test

 


Junit 测试框架


运行测试代码:后台会帮我们做两步操作


上传当前应用程序到手机系统
发送指令通知手机测试刚才上传的代码


所以需要在清单文件里配置:
 添加指令集(manifest节点下)
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.sqlitephone" />

targetPackage:是测试目标包


 指令集依赖jar包(application节点下)

 



Junit 测试步骤

 

 

 

单元测试

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

* Android单元测试实现流程

1.添加测试类库

在AndroidManifest.xml 的 节点 添加测试类库

2.设置测试环境

 

3. 编写测试类

- 获取上下文getContext()- 继承AndroidTestCase

- 使用断言 assertEquals()

- 查看测试效果

我们完成了一个业务方法,想要对其进行测试,Android程序是不能写main
方法运行的,需要建测试项目。


1. 创建测试项目
创建测试工程
定义工程名
选择要测试哪个工程

创建测试类,注意要继承AndroidTestCase
编写测试类
可以直接使用被测试工程中的业务类,测试方法必须以小写“test”开头

2. 不创建测试项目,加测试类
在AndroidManifest.xml清单文件中添加配置
< instrumentation android:targetPackage= "cn.itcast.junit"
android:name= "android.test.InstrumentationTestRunner" />

定义一个类继承AndroidTestCase,定义测试方法


Junit 单元测试


 新建业务方法
例如计算器的加法:
// 计算器
public class Calc {
/**
* 计算器相加的方法
* @param x
* @param y
* @return
*/
public int add(int x, int y) {
return x + y;
}
}
 新建Junit测试类,对add方法进行单元测试

//Android中想要进行单元测试 需要继承AndroidTestCase
public class TestCalc extends AndroidTestCase{
//需要写一个测试方法
public void testAdd(){
//想测试 计算器相加的方法
Calc calc = new Calc();
int result = calc.add(5, 6);
//断言
assertEquals(11,result);
}
}
 在清单文件中添加测试指令

android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.itheima.unit"
android:label="Tests for My App" />
 运行测试方法testAdd
如图:双击方法,右键Run As——Android Junit Test
运行结果:绿条代表测试通过。


Junit 单元测试,在公司中会用到,所以大家需要掌握。

Android Junit 拓展知识
注意:拓展知识并不是必须要求掌握的,心有余力之时可以作为进一步提升的
参考。
Android
测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序
可以精确控制应用程序。使用Instrumentation,
你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的
多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。
Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能
。
通过在测试工程的manifest文件中添
加元素来指定要测试的应用程序。这个元素的特性指明了要测
试的应用程序包名,以及告诉Android如何运行测试程序。下面的图片概要的描
述了Android的测试环境:
在
Android中,测试程序也是Android程序,因此,它和被测试程序的书写方式有
很多相同的地方。SDK工具能帮助你同时创建主程序工程及它的测试工程。你
可以通过Eclipse的ADT插件或者命令行来运行Android测试。Eclipse的ADT提供
了大量的工具来创建测试用例,运行以及查看结果。
Android提供了基于JUnit测试框架的测试API来书写测试用例和测试程序。
另外,Android还提供了强大的Instrumentation框架,允许测试用例访问程序的
状态及运行时对象。


Android Junit 中的主要核心API
 JUnit TestCase类
继承自JUnit的TestCase,不能使用Instrumentation框架。但这些类包含
访问系统对象(如Context)的方法。使用
Context,你可以浏览资源,文件,数据库等等。基类是AndroidTestCase,一
般常见的是它的子类,和特定组件关联。
子类有:
 ApplicationTestCase——
测试整个应用程序的类。它允许你注入一个模拟的Context到应用程
序中,在应用程序启动之前初始化测试参数,并在应用程序结束之
后销毁之前检查应用程序。
 ProviderTestCase2——
测试单个ContentProvider的类。因为它要求使用MockContentResolve
r,并注入一个IsolatedContext,因此Provider的测试是与OS孤立的
。
 ServiceTestCase——
测试单个Service的类。你可以注入一个模拟的Context或模拟的Appl
ication(或者两者),或者让Android为你提供Context和MockApplic
ation。
 Instrumentation TestCase类
继承自JUnit
TestCase类,并可以使用Instrumentation框架,用于测试Activity。使用Instrument
ation,Android可
以向程序发送事件来自动进行UI测试,并可以精确控制Activity的启动,监测Ac
tivity生命周期的状态。
基类是InstrumentationTestCase。它的所有子类都能发送按键或触摸事件
给UI。子类还可以注入一个模拟的Intent。子类有:
 ActivityTestCase——Activity测试类的基类。
 SingleLaunchActivityTestCase——
测试单个Activity的类。它能触发一次setup()和tearDown(),而不是
每个方法调用时都触发。如果你的测试方法都是针对同一个Activity
的话,那就使用它吧。
黑马Android课程笔记 就业服务部出品
 SyncBaseInstrumentation——测试Content
Provider同步性的类。它使用Instrumentation在启动测试同步性之前
取消已经存在的同步对象。
 ActivityUnitTestCase——
对单个Activity进行单一测试的类。使用它,你可以注入模拟的Cont
ext或Application,或者两者。它用于对Activity进行单元测试。不同
于其它的Instrumentation类,这个测试类不能注入模拟的Intent。
 ActivityInstrumentationTestCase2——
在正常的系统环境中测试单个Activity的类。你不能注入一个模拟的
Context,但你可以注入一个模拟的Intent。另外,你还可以在UI线
程(应用程序的主线程)运行测试方法,并且可以给应用程序UI发
送按键及触 摸事件。
 Assert类
Android还继

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 安卓006单元测试

相关文章

  • 2017-05-26nagios分组出图代码实现讲解[2]
  • 2017-05-26【RecyclerView与Glide】实现一个Android电子书阅读APP,gliderecyclerview
  • 2017-05-26深入理解RCU实现
  • 2017-05-26Redis3.0.7集群部署完整版
  • 2017-05-26项目优化之热更新,项目优化
  • 2017-05-26Activity被回收导致fragment的getActivity为空,fragmentgetactivity
  • 2017-05-26解决Android后台清理APP后,程序自动重启的问题,androidapp
  • 2017-05-26Android M以上运行时权限(Google官方出品),androidgoogle
  • 2017-05-26组件RecyclerView的应用(一),组件recyclerview
  • 2017-05-26android高仿京东垂直循环滚动新闻栏

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Cheatsheet: 2017 04.01 ~ 04.30,cheatsheet04.30
    • 安卓界面基本组件------计时器,安卓------计时器
    • android 实现漫天飞舞雪花以及下雨天的效果
    • Android特效专辑(十二)——如何仿支付宝咻一咻功能实现波纹扩散特效
    • redis cluster搭建
    • Android MediaPlayer 音乐播放
    • Android取消EditText自动获取焦点默认行为,androidedittext
    • A DB2 Performance Tuning Roadmap --DIVE INTO LOCK
    • android--获取屏幕高宽度工具类,android--工具类
    • 安卓开发学习经历2--《第一行代码》coolweather项目SQL语句同一个“陷阱”掉两次 注意转义字符等特殊字符正确书写 关于Id字段自增加体会,coolweather

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有