Android测试教程(6):测试Activity
2013-03-25 16:25
246 查看
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测试教程8--测试我们的Activity-第1篇
- Android测试教程(6):测试Activity
- Android安卓——Activity组件代码测试生命周期(续)
- Android测试教程(14):ActivityInstrumentationTestCase2示例
- Android自动化压力测试图解教程——Monkey工具
- Android测试教程(16):monkeyrunner简介
- Android测试教程(17):Monkey 命令行工具
- Android初级教程理论知识(第三章测试&数据存储&界面展现)
- Android 单元测试(四)测试 Activity和Fragment
- Android Activity 测试指南
- Android中级教程(三)之不同Activity之间的数据传递---Bundle对象的使用!
- Android开发教程之--Activity的生命周期
- Android测试Activity
- Android官方开发文档Training系列课程中文版:Activity测试之创建运行测试
- Android开发教程:蓝牙测试
- Android自动化测试初探: 捕获Activity上的Element
- Android测试教程(16):monkeyrunner简介
- android测试教程
- Android初级教程理论知识(第三章测试&数据存储&界面展现)
- Android教程 Activity的详细讲解