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 为例具体介绍这些类的用法。

更多相关文章

  1. tcping测试服务器TCP端口
  2. com android phone crash 手机已停止运行
  3. Android培训班(57)Dalvik虚拟机运行ZygoteInit类
  4. Android(安卓)AnimationDrawable运行的几种方式
  5. Android(安卓)S5PV210 创建的video设备
  6. Android(安卓)Cordova 插件开发之创建项目
  7. Android单元测试及日志输出
  8. Android(安卓)4.4源码编译过程
  9. 阿里知识储备之二——junit学习以及android单元测试

随机推荐

  1. Android流量统计
  2. android中context
  3. 创建SqliteDatabase
  4. USB Accessory
  5. 常用数组函数学习
  6. TP vue绑定事件与组件、通信、路由(四)
  7. WIN7实现安装node14版本
  8. 实例演示CURD
  9. 实例演示:模态框
  10. 绑定事件练习