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

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

相关文章推荐

Robotium-5.0.1-源代码解析(1)---ActivityUtils

Robotium主要基于Instrument

5个最佳的Android测试框架(带示例)

谷歌的Android生态系统正在不断地迅速扩张。有证据表明,新的移动OEM正在攻陷世界的每一个角落,不同的屏幕尺寸、ROM /固件、芯片组以及等等等等,层出不穷。于是乎,对于Android开发人员而言...

Android中Mock以及Mockito的使用

学习参考链接:1.Mock框架官网2.Mock以及Mockito的使用3.测试demo下载地址4.Android单元测试之Mockito浅析

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

Android 单元测试之Roboletric最简单的使用新建布局

Android 单元测试之Espresso - Google官方UI测试框架

Android 单元测试之Espresso - Google官方UI测试框架Espresso是Google官方推出的Instrumentation UI测试框架,在API支持方面有着天然的优势,在推出...

Android自动化测试2-Roboletric

一,创建一个Android工程,用于后面的各种自动化测试 这里我们创建一个简单的计算器,用户可以输入两个数字,点击按钮相乘得到结果。 应用界面如下: 在MainActivity中...
  • tjuac
  • tjuac
  • 2014-10-20 22:05
  • 329

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

二.Android单元测试 Mockito的更多用法(1) 三.Android单元测试 PowerMock给私有变量赋值 四.Android单元测试 PowerMock mock静态方法基于以下开...

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

Android 单元测试之Roboletric RxJava、Retrofit、访问真实网络、虚拟服务器添加依赖android { ... configurations.all { ...

Android单元测试-Mockito

本文为Mockito使用的学习笔记。Mockito概念相关添加 Mockito 依赖 testCompile "org.mockito:mockito-core:2.0.57-beta" Moc...

Mockito使用指南

转载请标明出处:http://blog.csdn.net/shensky711/article/details/52771493 本文出自: 【HansChen的博客】 mock和Mockito...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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