首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏三流程序员的挣扎

    Android 单元测试 Robolectric

    参考: Android单元测试(四):Robolectric框架的使用 官网 ---- 通过实现一套 JVM 能够运行的 Android 代码,从而实现脱离 Android 环境进行测试。 testImplementation "org.robolectric:robolectric:3.8" android { testOptions { unitTests { robolectric.offline — 禁止运行时网络抓取依赖 jar 包。 robolectric.dependency.dir — robolectric.offline 时,配置运行时依赖文件所在的文件夹路径。 'robolectric.dependency.repo.url', 'https://local-mirror/repo' systemProperty 'robolectric.dependency.repo.id

    2.5K30发布于 2018-09-11
  • 来自专栏设计模式

    Android单元测试框架Robolectric3.0(二):数据篇

    作者博客 http://www.jianshu.com/u/9fa7fc2f3733 源码地址 https://github.com/geniusmart/LoveUT 由于 Robolectric 如果你写UT,并使用Robolectric这样的框架,你不仅可以脱离Android环境对代码进行调试,还可以很快速的定位和Debug你想要调试的代码,大大的提升了开发效率。 2 日志输出 Robolectric对日志输出的支持其实非常简单,为什么把它单独列一个条目来讲解?因为往往我们在写UT的过程,其实也是在调试代码,而日志输出对于代码调试起到极大的作用。 4 数据库篇 Robolectric从2.2开始,就已经可以对真正的DB进行测试,从3.0开始测试DB变得更加便利,通过UT来调试DB简直不能更爽。 /robolectric/issues/1890 最后,行此文时,悲痛欲绝,越长大越不会表达自己的情感,此文送给肚中远去的小小猴子,此生无缘。

    1.5K20发布于 2020-12-15
  • 来自专栏设计模式

    Android单元测试框架Robolectric3.0(一):入门篇

    作者博客 http://www.jianshu.com/u/9fa7fc2f3733 源码地址 https://github.com/geniusmart/LoveUT 由于 Robolectric 3.0 注:Robolectric 3.1 之后,不建议用 Intent.equals() 的方式来比对两个 Intent ,因此以上代码将无法正常执行。目前建议用类似代码来断言: ? 6 Shadow的使用 Shadow是Robolectric的立足之本,如其名,作为影子,一定是变幻莫测,时有时无,且依存于本尊。 接下来,需自定义TestRunner,添加Person对象为要进行Shadow的对象(注:Robolectric 3.1 起可以省略此步骤)。 ? 参考文章 http://robolectric.org https://github.com/robolectric/robolectric http://tech.meituan.com/Android_unit_test.html

    2.7K30发布于 2020-12-15
  • 来自专栏Android 开发者

    [译] Android 上一次编写,随处测试

    AndroidX Test 提供了跨测试环境的通用测试 APIs,包括仪器测试和 Robolectric 测试。 从 Robolectric 4.0 开始,它们也可用于本地 JVM 测试。 考虑以下使用情形,我们启动登录页面,输入正确的用户名和密码,并确保进入主屏幕。 这个测试可以在使用 Robolectric 或任何真实或虚拟设备的本地 JVM 上运行。 你可能决定只在真机上运行一些较大的测试,同时在模拟器上运行大量较小的单元测试,比如 Robolectric,它可以在本地 JVM 上更快地运行测试。 : github.com/robolectricRobolectric: github.com/robolectric… AndroidX Test: github.com/android/and…

    2.2K20发布于 2019-03-20
  • 来自专栏杨焱的专栏

    Android Roboletric 测试,配置依赖下载地址

    直接在build.gradle中配置repo地址,不过这个问题曾经浪费好几天的时间 testOptions { unitTests.all { systemProperty 'robolectric.dependency.repo.url ', 'https://mirrors.huaweicloud.com/repository/maven/' systemProperty 'robolectric.dependency.repo.id includeAndroidResource = true 加上上面的仓库配置,可以直接使用: testOptions { unitTests.all { systemProperty 'robolectric.dependency.repo.url ', 'https://mirrors.huaweicloud.com/repository/maven/' systemProperty 'robolectric.dependency.repo.id

    64110编辑于 2021-12-07
  • 来自专栏腾讯移动品质中心TMQ的专栏

    腾讯TMQ在线沙龙回顾|单元测试(Android)

    答:Espresso、Robolectric, Mockito, Powermock、JUnit。 3、空方法不用模拟吧? 答:空方法不需要模拟,刚才说的是返回为void的方法。 11、不用robolectric,如何测试SQLite? 答:测试SQLite不是只能robolectric来完成的,其他工具一样可以完成。 13、robolectric测不了Jni,这个你们怎么解决的? 答:这个要看是测so还是测接口了,so已经是其他范畴了,接口可以mock模拟。 14、Jni的单测你们怎么做的? 答:见问题13。 15、sdk25对应的robolectric是哪个版本? 答:3.2.2以上,我记得好像最新是这个版本。

    2.2K60发布于 2018-02-08
  • 来自专栏腾讯移动品质中心TMQ的专栏

    【测试左移专栏】用 Powermock 和 Mockito 来做安卓单元测试

    1、选取合适的测试框架 作者开始在业务中尝试使用Robolectric测试框架,初心主要在于他的特性: Robolectric Test-Drive Your Android Code Running compileSdkVersion 23的不能使用Robolectric:3.0的版本,只能使用Robolectric:3.2.2以上的。 Robolectric首次启动下载maven相关的依赖失败。 唯一的办法只能一个一个手工的下载后丢到你的.m2\repository\org\Robolectric目录下,让Robolectric找到其所依赖的jar包,不需要在去下载,如下: 如果在build.Gradle 重新指定Robolectric的版本,那么这些需要的版本还要手工下载一遍。

    5.6K00发布于 2017-06-01
  • 来自专栏腾讯移动品质中心TMQ的专栏

    像 google 一样测试系列之三:方案选型篇

    考虑的是:Robolectric。 [1506067699217_6372_1506067901963.png] Robolectric样例代码: [1506067707496_708_1506067910309.png] 综上: 1、从Robolectric样例代码可以看出,目前Robolectric 基本是 从UI层介入,理论上可以忽略UI层,测试单一组件的逻辑,但关键的是不能测试组件的集成逻辑。 因此,最终放弃了Robolectric,选择了Local Unit Tests和Instrumented Tests。 未完待续......

    1.2K10发布于 2017-09-22
  • 来自专栏Android相关

    Gradle For Android(6)--测试单元

    Robolectric这个Lib提供了一个Android功能测试的快捷的方式,并且不需要设备和模拟器。 Robolectric 我们可以使用Robolectric来编写使用Android SDK和资源的测试。而这些测试任务会跑在一个JVM中。 开始使用Robolectric之前,我们需要添加一些测试的Dependencies。 在Robolectric之内,也需要包含JUnit,并且如果需要使用Support Library的话,你也需要使用Robolectric的shadow-support类: apply plugin: :robolectric:3.0' testCompile'org.robolectric:shadows-support:3.0' } Robolectric测试的类必须创建在src/test

    2.7K40发布于 2018-10-24
  • 来自专栏腾讯Bugly的专栏

    【Dev Club 分享】安卓单元测试:What, Why and How

    我们现在讲的是使用JUnit和Robolectric等其他的一些框架,写可以在我们开发环境的JVM上面直接运行的单元测试。 然而慢慢的,我的态度从拥抱Robolectric,到尽量不用它,尽量使用纯java代码去实现。 之所以尽量不用Robolectric,是因为Robolectric虽然相对于Instrumentation testing来说快多了。 用具体的数字来对比说明: 运行Instrumentation testing:几十秒,取决于app的大小 Robolectric:10秒左右 JUnit:几秒钟之内 当然,虽然运行一次Robolectric 因此,刚开始的时候,从Robolectric开始完全是OK的。 以上就是现在我们这边单元测试用到的几个基本技术:JUnit4 + Mockito + Dagger2 + Robolectric

    1.8K60发布于 2018-03-23
  • 来自专栏全栈程序员必看

    Android自己主动化測试解决方式

     如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric Robolectric另辟蹊径,它并不依赖于Android提供的測试功能,它使用了shadow objects而且执行測试于普通的工作站/serverJVM,不像模拟器或设备须要dexing(Android Pivotal实验室声称使用Robolectric能够在28秒内执行1047个測试。   LessPainful将Android測试又推进了一步,它提供了一个多设备平台自己主动化測试的服务。 InfoQ:与MonkeyRunner,Robotium和Robolectric相比,你们所提供的服务有什么优势呢?   JML:LessPainful是一种服务,而并不不过一种架构。

    41620编辑于 2022-07-09
  • 来自专栏腾讯移动品质中心TMQ的专栏

    移动APP自动化测试框架对比

    8、Robolectric http://robolectric.org/ Robolectric是一款Android单元测试框架,但它并不依赖于Android提供的测试功能,它通过实现一套JVM能运行的 Android代码,然后在unit test运行的时候去截取android相关的代码调用,然后转到Robolectric实现的代码(shadow objects)去执行这个调用的过程。 Pivotal实验室声称使用Robolectric可以在28秒内运行1047个测试。 除了实现Android里面的类的现有接口,Robolectric还给每个Shadow类额外增加了很多接口,可以读取对应的Android类的一些状态。 若为单元测试选择框架,可选Instrumentation或RobolectricRobolectric实现了shadow object类,耗时短。

    4.8K20发布于 2018-09-07
  • 来自专栏腾讯移动品质中心TMQ的专栏

    移动APP自动化测试框架对比

    Robolectric http://robolectric.org/ Robolectric 是一款Android单元测试框架,但它并不依赖于Android提供的测试功能,它通过实现一套JVM能运行的 Android代码,然后在unit test运行的时候去截取android相关的代码调用,然后转到Robolectric实现的代码(shadow objects)去执行这个调用的过程。 Pivotal实验室声称使用Robolectric可以在28秒内运行1047个测试。 除了实现Android里面的类的现有接口,Robolectric还给每个Shadow类额外增加了很多接口,可以读取对应的Android类的一些状态。 若为单元测试选择框架,可选Instrumentation或RobolectricRobolectric实现了shadow object 类,耗时短。 IOS自动化框架 1.

    6.6K101发布于 2018-02-06
  • 来自专栏ThoughtWorks

    Android 平台实现 CI

    这时可以采用Robolectric单元测试框架,这将大幅度提升单元测试覆盖率,且理论上可以达到100%。Robolectric是以JUnit为核心,完成了对Android SDK的stub。 由于Robolectric对SDK进行了stub,在写单元测试时完全可以对组件状态进行验证,甚至可以对组件进行操作。下面这个测试就是对button点击事件的测试,并且验证了Activity的状态。 (cancelButton); 接下来的工作就是将Robolectric集成到CI中,让它检查程序的健康状况。 Robolectric本质上还是JUnit,只是多了一些stub 对象而已。那我们集成Robolectric的方法和JUnit完全一致。 之前已经说过Calabash也可按照单元测试报告规范输出,加上Robolectric本身就是JUnit框架的扩展,报告也是按照单元测试报告规范输出。

    2.2K90发布于 2018-04-18
  • 来自专栏APP自动化测试

    App自动化测试探索(一)借助Appium实现APP的自动化测试

    掌握智能手机的屏幕分辨率分布情况 关注平板电脑的发展 尽量规避BYOD(自带设备办公)模式的风险 10款移动应用测试框架 Appium (iOS/Android) Calabash (iOS/Android) KIF (iOS) Robolectric

    1.3K70发布于 2019-10-15
  • 来自专栏空帆船w

    Android Clean 架构

    Layer: 使用 AndroidInstruction 和 espresso 做集成测试和功能测试 Domain Layer:使用 JUnit 和 mockito 做单元测试 Data Layer:使用 Robolectric

    1.7K10发布于 2019-01-23
  • 来自专栏腾讯移动品质中心TMQ的专栏

    当 Espresso 遇见 Android 单元测试

    如果依赖Android环境,但是没有UI相关或者UI比较简单(如点击按钮)的单元测试可以使用开源库Robolectric解决依赖问题,使测试运行在JVM上,而非模拟器上,大大提高测试运行效率。 Espr 当然,Espresso不仅局限于此,可以一定程度上取代Robolectric与Uiautomator。

    3.1K10发布于 2017-08-22
  • 来自专栏Open软件开发小组

    [Android技术专题]每个开发者都应该懂一点单元测试

    ; 在console中观察测试结果; 测试框架能够提高测试效率 JUnit、Instrumentation test、Espresso、UI Automator、Robolectric、 Appium、Robotium JUnit:能够直接在PC上执行; AndroidTest:需要依赖Android设备; Robolectric:在不需要依赖Android环境的前提下,实现在PC上直接运行 Mockito的使用 Android单元测试(五):依赖注入,将mock方便的用起来 Android单元测试(六):使用dagger2来做依赖注入,以及在单元测试中的应用 Android单元测试(七):Robolectric

    1.3K30发布于 2020-03-19
  • 来自专栏一个会写诗的程序员的博客

    干货来袭,推荐几款开源的Kotlin的Android项目

    Android-mvp-kotlin-starter https://github.com/ravidsrk/android-mvp-kotlin-starter Kotlin + MVP + Dagger2 + RxJava2 + Robolectric

    2.4K11发布于 2018-08-17
  • 来自专栏编程思想之路

    Android4.4.2源码分析之WiFi模块(一)

    可以看到判断设备是否支持WiFi直连是通过PackageManager的hasSystemFeature 目录为 /android/external/robolectric/src/main/java /com/xtremelabs/robolectric/res/ public boolean hasSystemFeature(String name) {  return systemFeatureList.containsKey

    1.3K10编辑于 2022-05-07
领券