`
MyEyeOfJava
  • 浏览: 1123570 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:70138
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

[Android]再简单解释一下androidtest包下的其他测试类

阅读更多
简单解释一下android.test包下的其他测试类,给大家一个了解。

[b]Interfaces[/b]
PerformanceTestCase
PerformanceTestCase.Intermediates
TestSuiteProvider
[b]Classes[/b]
ActivityInstrumentationTestCase
ActivityInstrumentationTestCase2
ActivityTestCase
ActivityUnitTestCase
AndroidTestCase
AndroidTestRunner
ApplicationTestCase
InstrumentationTestCase
InstrumentationTestRunner
InstrumentationTestSuite
IsolatedContext
LoaderTestCase
MoreAsserts
ProviderTestCase
ProviderTestCase2
RenamingDelegatingContext
ServiceTestCase
SingleLaunchActivityTestCase
SyncBaseInstrumentation
TouchUtils
ViewAsserts



以上列出的是android.test包下的所有接口以及类,那么简单了解一下,起码能够不盲目崇拜框架,市场上的大多数框架都是基于android.test包来实现的,如果你发现没有针对于它们来实现的,那么有可能就是有root权限的手机,或者操作系统是自己的手机反射来进行测试的,不过我也不能绝对这么说,如果有其他好玩的框架,欢迎留言,我也去研究研究,谢谢。


Interface接口
接口部分包含3个接口PerformanceTestCase、PerformanceTestCase.Intermediates、TestSuiteProvider。

PerformanceTestCase性能测试接口,也是当前某些测试开发工程师或者开发熟知的这么一个性能测试手段,需要进行性能测试的类需要实现这个接口,采用白盒代码注入的方式获取当前类的性能,这种方式不能讲测试与开发代码进行很好的分离,当前使用范围不大。不过推荐开发同学使用这种方式自测。

PerformanceTestCase.Intermediates接口,是实现PerformanceTestCase类的回调方法,用于收集相关的数据。使用方式: startPerformance (PerformanceTestCase.Intermediates intermediates),实现PerformanceTestCase的类可以直接调用startPerformance 方法。

TestSuiteProvider这个接口一般都不会直接使用,子类InstrumentationTestRunner比它好用,这个接口就是获取一下testsuite。


classes相关类
ActivityInstrumentationTestCase,这是一个废弃功能测试类,在API3之前的才可以使用,也就是android操作系统1.5版本,对当前的测试开发工程师来说,恩恩,忽略它吧。

ActivityInstrumentationTestCase2,这个是当前主流用于测试apps功能的测试类,大名鼎鼎的robotium就是基于这个类来实现的,当前这个类的底层也用时instrmentation去玩android的,这个类直接使用系统底层资源来做测试,运行在ui线程中,意思就是,你使用这个类进行测试,肯定是需要将apps运行起来的,能看见界面的。他的父类是android.test.ActivityTestCase,爷爷是android.test.InstrumentationTestCase,你看这个拼爹的时代,有个好爹,这个类就非常好用了。

ActivityTestCase,这个类其实我个人认为没有存在的必要,作为一个父亲没有做到父亲的职责,就是让集成它的儿子们属性看起来明显一点,恩,看你们集成ActivityTestCase肯定是测试Activity的,好吧,不推荐大家去使用了,它就是对爷爷instrumentationtestcase的集成,好用的功能都在instrumentationtestcase里呢,对于父亲来讲,这一代家道中落。

ActivityUnitTestCase,这个见我上一篇博客,我详细的说过。

AndroidTestCase,这个类提供了可以让我们控制context的入口,Context是什么呢,我个人理解的,如果你做过j2ee开发,我理解这个context就是application session,全局变量,在整个系统中我都能够调用它,用它来传递一些信息。并且多一个功能,我们可以理解为call,可以call一些功能,例如activity,接个广播之类的。我们可能用它不多,主要看看它有什么子类,ApplicationTestCase<T extends Application>, LoaderTestCase, ProviderTestCase2<T extends ContentProvider>, ServiceTestCase<T extends Service>,呵呵,看这些子类我们知道,父亲就为他们干了一件共同的事那就是Context,那么具体你测试什么,你得用我儿子的技能才行啊。

AndroidTestRunner,最基础的runner类,来抓取运行过程中和运行结束后的一些数据,没有具体使用过。

ApplicationTestCase,主要用來测试Application,提供了对Application类生命周期方法的基本支持,並可以支持一些dependency injection 以帮助构造Application的环境,你有你再调用了createApplication之后才能嗲用oncreate方法。这个部分需要大家对android生命周期有相关的了解。依赖注入这里,我们可以设置context对象来调用,也可以mock context对象。

InstrumentationTestCase,android底层最核心调用activity的基础里,不要求大家去直接使用它,但是需要知道它能做什么,有那些类是基于它实现的,他能够开启activity,携带intent开启activity,并发send一些命令,让手机或者虚拟机执行这些命令。看一下它的儿孙们:Known Direct Subclasses
ActivityTestCase, ProviderTestCase<T extends ContentProvider>, SingleLaunchActivityTestCase<T extends Activity>, SyncBaseInstrumentation
Known Indirect Subclasses
ActivityInstrumentationTestCase<T extends Activity>, ActivityInstrumentationTestCase2<T extends Activity>, ActivityUnitTestCase<T extends Activity>,它的儿孙们这些你应该熟知几样吧,很多功能都是从它这来的,然后进一步封装,来对android系统来发送相关的操作命令。

InstrumentationTestRunner这个类和AndroidTestRunner类似,这个类现在我们主要用作重写测试报告用的,他可以运行测试类,suite,获取类名方法名,获取到测试结果,那结果生成到eclipse,junit结果,你不喜欢看,那么很多人就重写这个类把结果写到xml文件里,哦,然后生成你想看到的报告,就是冲这来的。可以直接使用adb shell am instrument -w命令行来调用它的相关功能。

InstrumentationTestSuite这个倒是没什么,就是类junit一样的一个testsuite类,可以将测试方法作为suite,批量执行。

IsolatedContext,一个mock的Context对象,他的爷爷就是Context对象。

LoaderTestCase,这个个人没有使用过,留着以后调研一下吧

MoreAsserts,这个类提供了一些在junit中你找不到的assert方法,比较实用,推荐。

ProviderTestCase,与ActivityInstrumentationTestCase类似,已经被弃用。API3

ProviderTestCase这个类主要是来测试 ContentProvider的,ContentProvider为存储和读取数据提供了统一的接口,ContentProvider可以让应用进行数据共享,那么ProviderTestCase这个类主要是用来测试,数据读取的,它与serviceTestCase一样属于组件级别的测试。

ServiceTestCase,这个类是做androidservice测试的,可以使用intent进行传递开启service服务,服务开启后你的应用会做什么样的事情,你自己要清楚,然后针对服务器开后的相关操作来进行验证。

SingleLaunchActivityTestCase,不清楚
SyncBaseInstrumentation,不清楚

TouchUtils,一个工具类用于你方便进行拖拽,下拉,长按等。

ViewAsserts,一个关于view方面的assert方法的集合类。

  
0
0
分享到:
评论

相关推荐

    AndroidTest

    是android的单元测试的简单代码,用了android的两种单元测试方式,大家可以看看android是如何进行测试类的编写及配置的。

    Android程序技术:调试.pptx

    使用AndroidStudio开发工具完成单元测试非常简单,在项目创建时Android Studio就已经默认创建了一个androidTest包和ApplicationTest类,所有测试的功能模块写入此类即可。 单元测试 单元测试 单元测试 在Application...

    新版Android开发教程.rar

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

    AndroidTest:一个小小的安卓测试应用

    安卓测试一个小小的安卓测试应用

    简单谈谈android studio 的单元测试

    面对android studio Run 一次项目要等好几分钟的痛点,不得不研究一下android studio 的单元测试。...于是乎,强大的 android studio 也考虑到了这一点,给我们提供的简单的单元测试类。 让我们来

    simpleab:创建 Android AB 测试的简单框架

    SimpleAB - A/B 测试的简单框架SimpleAB 是一个框架,可帮助您轻松进行 A/B 测试您的 Android 应用程序。 A/B 测试应该尽可能简单,如果您对处理庞大的 SDK 和理解复杂的仪表板和文档文章不感兴趣,SimpleAB 就是您...

    一个用于生成简单A / B测试的Android库-Android开发

    适用于Android的A / B测试库... ...通过使用批注使编写简单的测试变得更加简单。 工作原理当前,您可以使用两种不同的注释:@TextTest和@ResourceTest。 @TextTest适用于plu Android的A / B测试库... ...通过使用...

    android_test_example:Android UnitTest 示例。 花了整个周末来进行 Android 测试。 该死!

    android_test_example 花了周末时间进行 Android 测试。 该死! 环境 安卓工作室 1.0.2 JDK 1.8 x64 安卓仪器工具 从默认的android模板创建

    AndroidRobot

    AndroidRobot几乎近乎完美的模拟人的所有行为进行测试,就像手工操作手机一样,准确无误的录制与回放这些路径. Android Robot能够帮助工程师进行: 功能测试 UI测试 极限和压力测试 以及生成易读的报告 脚本...

    游戏地图测试演示(android)

    练习的一个android地图演示类,极其简单...

    android连接SQLite数据库源代码

    五、单元测试类要注意的 AndroidCRUDService curdService = new AndroidCRUDService(this.getContext()); /* * 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文 *一般...

    Android SM2、SM3、SM4 算法支持 Service Provider 及证书制作软件包

    Android SM2、SM3、SM4 算法支持 Service Provider 及证书制作软件包 国密算法 JCAJCE Service Provider,适应版本 Android 4.2.2~7.0 支持 SM2 的 KeyFactory、KeyPairGenerator、Cipher、Signature、X.509 ...

    安卓HTTP(POST/GET)测试工具,支持定时请求

    也可以用于一些简单的整点秒杀之类的活动(前提自己会抓包)所以才加入循环和定时功能 安装包仅53KB左右 1、UI使用滚动的层次结构布局容器,更好适应小尺寸屏幕手机。 2、加入当返回内容出现指定值就停止的选项。

    EspressoUITest-Examples:使用Espresso,Mockk,androidx.test进行UI测试的示例

    创建测试套件以一次运行多个测试类 简单的用例测试片段及其行为,没有依赖关系 测试Kotlin最终课程(使其开放供测试) 更复杂的测试以及为什么推荐依赖注入 用FragmentFactory提供依赖项 片段导航 采取任何特定...

    android 学习笔记

    电话拨号 使用系统自带意图对象完成... &lt;uses-library android:name="android.test.runner"/&gt; android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.xiaoqiang" /&gt; &lt;/manifest&gt;

    节省时间并清除Android上的单元测试!-Android开发

    使用批注将上下文,活动,片段和视图注入到测试中用法@RunWith(CustomTestRunner.class)公共类MainAc Android单元测试节省时间并清除Android上的单元测试! 使用批注将上下文,活动,片段和视图注入测试中。用法@...

    Android开发规范

    Android内部开发规范,编码规范 目录 1 介绍 5 1.1 目的 5 1.2 术语和定义 5 2 文件组织 5 2.1 JAVA包和源文件 5 2.1.1 开头注释 5 2.1.2 包和引入语句 6 2.1.3 类和接口声明 6 3 缩进排版 7 3.1 行长度 7 3.2 括号 ...

    Android插件框架Android-Plugin-Framework.zip

    还有一种简易的安装方式,是使用编译命令为 “ant clean debug install” 直接将插件apk安装到系统中,PluginMain工程会监听系统的应用安装广播,监听到插件apk安装广播后, 再自动调用PluginLoader.installPlugin...

    Android系统的自动化测试解决方案

     Android自身提供了对instrumentation测试的基本支持,其中之一就是位于android.test包内的ActivityInstrumentationTestCase2类,它扩展了JUnit的TestCase类来提供Androidactivities的功能测试。在应用测试中,每...

    Android_Socket_UDP_Test:Android网络接口通信Socket的UDP实验

    Android_Socket_UDP_Test Android网络接口通信的第二个实验 Socket的UDP方法实现通信 其中发送方是Test2,接收方是Test1,主要用的类是DatagramSocket类

Global site tag (gtag.js) - Google Analytics