Android 单元测试之Roboletric 环境配置

原创 2016年08月29日 08:54:06

Android 单元测试之Roboletric 环境配置

Android 单元测试之JUnit和Mockito
Android 单元测试之Roboletric 环境配置
Android 单元测试之Roboletric的简单使用
Android 单元测试之Roboletric RxJava、Retrofit、访问真实网络、虚拟服务器
Android 单元测试之Espresso - Google官方UI测试框架

Robolectric由于只在Java虚拟机中运行,速度很快,虽然在API支持上无法和Espresso相比,但速度有很大优势,适合单元测试,尤其是TDD时使用。

官网: http://robolectric.org/activity-lifecycle/
GitHub:https://github.com/robolectric/robolectric

虽然官网上有相关的教程,但是却有很多坑,表示一脸懵逼。。

按官网上进行配置

添加

testCompile 'org.robolectric:robolectric:3.1.2'  

运行单元测试出现了一下错误:

错误一

NoClassDefFoundError:javax / microedition khronos / opengl / GL

解决方法:

这个错误只在Android6.0+上出现,可通过@Config进行配置测试的SDK

@Config(constants = BuildConfig.class, sdk = 21)

错误二

java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch(Ljava/lang/Object;Lorg/hamcrest/Description;)V

解决方法:

添加

testCompile 'org.khronos:opengl-api:gl1.1-android-2.1_r1'
testCompile 'org.hamcrest:hamcrest-all:1.3'

错误三

Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.1)  
and test app (22.2.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

解决方法:

android{
    ...
    configurations.all {
        resolutionStrategy {
            force 'com.android.support:support-annotations:23.2.1'
        }
    }   
}

错误四

assertThat Intent 时 无论如何都匹配不成功

解决方法:

暂时使用这个

/**
 * 由于robolectric:3.1.X在assetThat Intent时的bug导致比较不成功,故暂时使用该方法
 *
 * @param expected
 * @param actual
 */
public static void assertIntent(Intent expected, Intent actual) {
    assertEquals(expected.toString(), actual.toString());
}

错误五

这个错误在robolectric3.0.0及之前出现

error: cannot access AndroidHttpClient

解决方法:

android{
    ...
    useLibrary 'org.apache.http.legacy' 
}

其他

源码Demo

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 单元测试之Roboletric RxJava、Retrofit、访问真实网络、虚拟服务器

Android 单元测试之Roboletric RxJava、Retrofit、访问真实网络、虚拟服务器添加依赖android { ... configurations.all { ...
  • EthanCo
  • EthanCo
  • 2016年08月29日 08:57
  • 2236

Robolectric环境搭建——运行RobolectricSample示例工程

Robolectric简介 在android平台上运行单元测试用例需要真机或模拟器,从构建、部署、到启动应用程序通常需要好几分钟,这对于TDD来说太慢 了,也许尝试过在IDE上直接运行测试用例,但得到...

Android 单元测试之Roboletric的简单使用

Android 单元测试之Roboletric最简单的使用新建布局
  • EthanCo
  • EthanCo
  • 2016年08月29日 09:00
  • 1158

robolectric完全解析

官网地址:http://robolectric.org介绍:在android设备上跑测试用例太慢了,编译、部署、启动app要花费很多时间。Robolectric是一个单元测试框架,测试是运行在jvm上...

一.Android单元测试 Mockito的简单用法

二.Android单元测试 Mockito的更多用法(1) 三.Android单元测试 PowerMock给私有变量赋值 四.Android单元测试 PowerMock mock静态方法基于以下开...
  • ligen52
  • ligen52
  • 2017年01月06日 00:33
  • 696

有关于Android Menu的一些小知识总结

首先不得不吐槽,笔者今天下午加晚上3个小时的大好时光就用在研究menu的琐碎事上了。。 。 原来觉得这些基础知识没什么问题,今天研究起来才发现都是坑,要吸取教训啊,注重基础!! 首先想说一些关于魅族...
  • zjutkz
  • zjutkz
  • 2015年05月14日 21:41
  • 995

Android单元测试环境配置指南

由于客户要求手机端APP要有单元测试并达到一定的覆盖率,本人花了几天研究一下Android单元测试,在搭建环境的时候经历了大大小小不少坑,这里写出来给需要的小伙伴一个参考。...
  • URCrazy
  • URCrazy
  • 2017年02月28日 11:22
  • 164

基于QNX的Testbed单元测试环境配置过程

 1.       本机安装QNX系统: A安装VMware.Workstation.v***.exe B在VMware打开QNX虚拟机(vmware\Qnx\Other.vmx) 2. ...

使用Xcode进行单元测试 —— 环境配置

转自 http://42.96.169.71/blog/2013/01/15/shi-yong-xcodejin-xing-dan-yuan-ce-shi/ 单元测试,是保证产品质量的一个好...

基于QNX的Testbed单元测试环境配置过程

基于QNX的Testbed单元测试环境配置过程,QNX的测试分析
  • xjhhjx
  • xjhhjx
  • 2017年07月09日 09:28
  • 168
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 单元测试之Roboletric 环境配置
举报原因:
原因补充:

(最多只允许输入30个字)