Android新提供的测试框架支持库学习 && Testing Support Library

本文半翻译与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线程同步的问题。官方建议是前者更适合做白盒测试后者更适合做黑盒自动化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值