`
lyunabc
  • 浏览: 530667 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Android测试教程(6):测试Activity

 
阅读更多

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

分享到:
评论

相关推荐

    Android单元测试-对Activity的测试

    上一篇文章已经介绍了单元测试的作用和简单示例,如果不了解的读者可以先阅读上一篇[ Android单元测试-作用以及简单示例](http://blog.csdn.net/double2hao/article/details/77159380)。 这篇文章主要介绍常见的...

    Android高薪之路:Android程序员面试宝典 李宁

    3 9 1 Android中的窗口:Activity 3 9 2 广播接收器:Broadcast Receiver 3 9 3 服务 Service 3 9 4 内容提供者 Content Provider 第4章 对话框 信息提示和菜单 4 1 对话框 4 2 信息提示 4 2 1 Toast信息框 4 2 2 ...

    Android的Activity周期测试

    Android基础之Android的Activity周期

    Android Activity生命周期测试代码

    有助于深入了解Android Activity生命周期的测试代码,可以结合博客http://blog.csdn.net/freetangxiaoying/article/details/17167819领悟。

    Android单元测试初探——Instrumentation

    学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次。这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所以先写个基本入门吧!...

    android activity4种启动模式测试

    android activity4种启动模式测试 一个演示启动模式的demo,结合博文,可以很方便的熟悉各种启动模式之间的差异。

    测试Android Activity生命周期Demo

    用于匹配Android生命周期博文的测试例子

    android-junit5:使用Android的JUnit 5进行测试

    一个Gradle插件,允许使用Android Gradle Plugin 3.5.0或更高版本在Android环境中执行测试。 如何? 该插件为项目的每个构建变体配置单元测试任务,以在JUnit Platform上运行。 此外,它附加到android.testOptions...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android Activity生命周期测试程序

    Android Activity生命周期测试程序,可以用作Android开发辅助小工具。

    Android Activity LaunchMode Test

    Android Activity 加载模式 测试

    Android单元测试之对Activity的测试示例

    上一篇文章已经介绍了单元测试的作用和简单示例,如果不了解的读者可以先阅读上一篇Android单元测试-作用以及简单示例。  这篇文章主要介绍常见的Activity中的测试。 对Acitivity的测试 对于Activity,我们大致有...

    老罗android开发视频教程全集百度网盘下载

    Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及...

    android 项目 开发 Demo

    android:label="@string/title_activity_main" android:theme="@style/Theme.Foo" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> ...

    android自动化演示实例

    1.Android 自动化测试1:启动app的默认Activity,启动指定Activity 2.Android 自动化测试2: 捕获Element,并定位Element,实现点击、拖、拽、按压等 3.Android 自动化测试3:验证Element,enabled、visible、exist等 4...

    Activity_Hijack.apk

    使用方法:安装HijackActivity.apk,使用 activity 界面劫持工具,在工具中指定要劫持的应用进程名称。如图所示,从列表中选择被测试的应用,点击 OK。打开应用,测试工具会尝试用自己的窗口覆盖被测的应用,如果...

    Android自学视频教程 part1

    《Android自学视频教程》[1] 分3篇共21章,其中,第1篇为入门篇,主要包括Android入门、搭建Android开发环境、认识Android模拟器、剖析Android程序、Android常用组件的使用、掌握布局管理器、Android程序调试与错误...

    calculon, 用于Android视图和 activity的测试 DSL.zip

    calculon, 用于Android视图和 activity的测试 DSL : calculon永远不需要两个" !Calculon是用于 Google Android的测试 DSL 。 它允许你使用像这样的酷东西编写 Activity 测试和用户故事测试:public class FooTest

    Android单元测试框架Robolectric.zip

    Robolectric 是一款Android单元测试框架,示例代码: @RunWith(RobolectricTestRunner.class) public class MyActivityTest { @Test public void clickingButton_shouldChangeResultsViewText() throws ...

    Android Activity和Fragment的生命周期测试代码

    Android Activity和Fragment的生命周期测试代码,没事的时候可以玩玩。

Global site tag (gtag.js) - Google Analytics