Android测试教程(6):测试Activity
2012-05-15 07:17
211 查看
Activity的测试非常依赖于Android的Instrumation 框架,和Android其他组件不同的是,Activity具有复杂的生命周期回调函数(如onCreate, onStart 等) ,通常情况下除通过Instrumation 接口外不能直接调用这些回调函数。
测试Activity的基本测试类为InstrumentationTestCase,它提供了Instrumentation接口给TestCase的子类。 为了支持Activity测试,InstrumentationTestCase提供了下面功能:
生命周期控制: 使用Instrumentation,你可以启动,暂停,中止被测试的Activity。
Dependency Injection : Instrumentation允许创建一些Mock对象如Context,Application来帮助测试Activity,从而帮助你控制测试环境并和实际的应用的其他部分隔离开来。你也可以定制一些Intent以启动Activity。
用户界面交互: 你可以使用Instrumentation向UI发送按键和触摸事件。
下面几个为主要的用于测试Activity由TestCase派生而来的测试类:
ActivityInstrumentationTestCase2 通常用于多个Activity的功能测试,它使用正常的系统框架来运行Activity(使用应用程序本身),并使用正常系统Context (非Mock)来测试Activity的功能。 允许你创建一些Mock Intent 用来测试Activity的响应。要注意的是,这种TestCase不允许使用Mock的Context和Application对象测试,也就是说你必须使用和应用程序实际运行的环境来测试。
ActivityUnitTestCase 通常用来测试单独Activity。在启动被测试的Activity之前,你可以Inject一个假的Context或是Application ,使用这个Mock的Context中一个隔离环境中运行被测试的Activity。通常用于Activity的单元测试,而不和Anroid系统进行交互。
SingleLaunchActivityTestCase 用于测试单个Activity,和ActivityUnitTestCase不同的是,它只运行setUp 和tearDown 一次,而不是在运行testCase 中每个Test Method前后运行setup 和tearDown ,它可以保证运行多个测试之间fixture 不会被重置,从而可以用来测试一些有关联的方法。
本篇和后面几篇介绍Activity,Service,Content Provider 测试的基本概念和相关类,之后则结合ApiDemo->Tests 为例具体介绍这些类的用法。
测试Activity的基本测试类为InstrumentationTestCase,它提供了Instrumentation接口给TestCase的子类。 为了支持Activity测试,InstrumentationTestCase提供了下面功能:
生命周期控制: 使用Instrumentation,你可以启动,暂停,中止被测试的Activity。
Dependency Injection : Instrumentation允许创建一些Mock对象如Context,Application来帮助测试Activity,从而帮助你控制测试环境并和实际的应用的其他部分隔离开来。你也可以定制一些Intent以启动Activity。
用户界面交互: 你可以使用Instrumentation向UI发送按键和触摸事件。
下面几个为主要的用于测试Activity由TestCase派生而来的测试类:
ActivityInstrumentationTestCase2 通常用于多个Activity的功能测试,它使用正常的系统框架来运行Activity(使用应用程序本身),并使用正常系统Context (非Mock)来测试Activity的功能。 允许你创建一些Mock Intent 用来测试Activity的响应。要注意的是,这种TestCase不允许使用Mock的Context和Application对象测试,也就是说你必须使用和应用程序实际运行的环境来测试。
ActivityUnitTestCase 通常用来测试单独Activity。在启动被测试的Activity之前,你可以Inject一个假的Context或是Application ,使用这个Mock的Context中一个隔离环境中运行被测试的Activity。通常用于Activity的单元测试,而不和Anroid系统进行交互。
SingleLaunchActivityTestCase 用于测试单个Activity,和ActivityUnitTestCase不同的是,它只运行setUp 和tearDown 一次,而不是在运行testCase 中每个Test Method前后运行setup 和tearDown ,它可以保证运行多个测试之间fixture 不会被重置,从而可以用来测试一些有关联的方法。
本篇和后面几篇介绍Activity,Service,Content Provider 测试的基本概念和相关类,之后则结合ApiDemo->Tests 为例具体介绍这些类的用法。
相关文章推荐
- Android测试教程(6):测试Activity
- Android测试教程8--测试我们的Activity-第1篇
- Android测试教程(9):ApplicationTestCase示例
- Android训练课程(Android Training) - 测试你的Android Activity
- Android联机或者模拟器单独测试Activity的辅助Activity示例开发
- Android教程 -04 启动其它Activity,静态工厂设计模式传递数据
- Android开发视频教程之十一(Activity布局初步三:相对布局RelativeLayout)
- Android dialog,activity 屏蔽Home键的教程详解
- Android测试教程(9):ApplicationTestCase示例
- Android测试教程(1):概述
- android 测试教程(转)
- Android测试官方教程翻译(三)--构建设备单元测试
- Android测试教程3--用Robotium来生自动生成操作
- 教程视图Android教程(十三)-- Activity间的切换
- android新手教程——startActivityForResult的用法
- android学习:android Activity生命周期的七个方法测试
- android 获取当前运行的activity(待整理测试····)
- android 隐藏状态栏和 测试 Activity是否活动
- Android——通过案例代码测试Activity的整个生命周期
- Android开发教程之Fragment定义、创建与使用方法详解【包含Activity通讯,事务执行等】