Android新提供的测试框架支持库学习 && Testing Support Library
来源:互联网 发布:gsk数控机床仿真软件 编辑:程序博客网 时间:2024/06/05 15:55
本文半翻译与google官方文档,在学习之后,需要了解的是android提供的测试库工具,以及了解它们的作用,以前都是用junit3写robotium的,现在与时俱进吧。
android提供多重测试用的支持库,比如说junit4的支持以及ui测试。这一篇文档告诉我们android测试支持库提供了什么样的工具以及怎么使用它们。
android测试支持库包含了下面几个自动化工具:
AndroidJunitRunner 为android提供junit4支持
Espresso 测试框架
Ui Automator 测试框架
AndroidJunitRunner:
这个类支持Espresso和Ui Automator测试框架,运行并监控你的测试结果,这是用来替代只能运行junit3的instrumentationTestunner的。(这个可以导出报告,非常方便,junit4确实很方便),有如下优点:
1.Junit 支持
支持junit3和junit4,但是不推荐混合编写,如果你用junit4的格式,在类前面声明
@RunWith(AndroidJunit4.class)。
2.使用instrumentation特性
你可以使用 InstrumentationRegistry这个类获取你的测试相关信息,这个类就是包含Instrumentation对象的和Context对象,这些对象对你写测试用例是很有用的。
3.测试过滤器
使用annotations多重标签测试,这个特性会减少你的代码标记,除了junit4特有的标记,还可以使用android新增的特性。
比如说:
@RequiresDevice
只能运行在真机中
@sdkSupress
@SDKSupress(minSdkVersion=18).最低运行版本
@smallTest @MediumTest @LargeTest
4.测试分享
就是一个用例支持跑多台机器
测试依赖框架配置
测试支持库是可以通过Android SDK Manager下载的:
1. Android Support Repository item.
2. Click the Install packages… button.
下载完后测试依赖库都是在android.support.test包下面。所以要使用这些库,需要在gradle中添加
dependencies { androidTestCompile 'com.android.support.test:runner:0.4' // Set this dependency to use JUnit 4 rules androidTestCompile 'com.android.support.test:rules:0.4' // Set this dependency to build and run Espresso tests androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' // Set this dependency to build and run UI Automator tests androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'}
android { defaultConfig { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }}
Espresso:
谷歌其实说了Espresso是做白盒测试适用的。
同步UI线程
之前的测试框架都是需要等view出现才能够执行和断言,解决办法是延迟xx秒。但是Espresso解决了Instrumentation和UI线程之间的同步问题,可以让你在执行之前不用sleep了。
UI Automator:
谷歌推荐用来做黑盒自动化,具体用法就不说了。
总结:
本篇文档介绍了android.support.test包中,也就是android提供的测试支持库,其中androidjunitrunner是谷歌专门为android开发的用来替代InstrumentationTestRunner的类,允许你在android测试中用junit4,并且增加了独有的annotation标记,android的测试用例都支持androidjunit。后面介绍了两个自动化框架,espresso和uiautomator,其中espresso解决了UI线程同步的问题。官方建议是前者更适合做白盒测试后者更适合做黑盒自动化。
- Android新提供的测试框架支持库学习 && Testing Support Library
- android 的 Testing Support Library 测试支持包(库)
- Android Testing Support Library
- Testing Support Library在Android测试中的使用
- Android设计支持库 Design Support Library
- Testing Support Library
- Android Design Support Library 的学习总结
- Android设计支持库(Android Design Support Library)
- android的Support Library
- Android中支持库(Support Library)详解
- (8.1.5.8)Android Testing Support Library翻译之 AndroidJUnitRunner
- Android Design Support Library兼容库的使用(八个新控件)
- Android Design Support Library学习
- Android Support Library 学习入门
- Android 5.x Support Library 新特性
- Android support library 23.2新特性介绍
- [android ui]侧边栏(使用Support Library 4提供的扩展组件)
- 解决谷歌为Android系统提供的支持库android-support-v4。jar不能绑定查看源码的问题
- CopyOnWriteArrayList的理解与理解
- 环中环
- 【java基础】java中的Iterator和Iterable 区别
- 1163. 【普及组模拟赛】投影(skyline)
- OJ------坐标移动
- Android新提供的测试框架支持库学习 && Testing Support Library
- Map 统计字符出现的次数
- 下拉框三级联
- SDUTACM 数据结构实验:连通分量个数
- PAT 1028Gas Station (30)
- c++对象模拟游戏数据
- JavaMail使用SSL的方式登录
- 数据结构实验之二叉树的建立与遍历
- Android View的绘制流程