加速单元测试 Robolectric 环境搭载

本文介绍了Android应用开发中单元测试的重要性,重点讲解了Robolectric框架的使用,包括其作用、如何引入以及解决远程下载失败的问题。通过手动下载所需文件并放置到本地仓库,或者修改下载地址,来确保测试正常运行。
摘要由CSDN通过智能技术生成

一、单元测试

单元测试一直是编程开发重要的一部分,但在 Android 应用开发经常被忽视,转而由人工测试替代。除了 Android 功能测试涉及代码编写外,还有上下依赖的 context 传递,但这一切都不该是我们直接放弃单元测试的原因,单元测试除了在代码编写后检查设计功能的完整性,还能快速捕获和修复因代码更改(重构、优化等)带来的回归问题。

今天主要介绍 Robolectric 的环境搭载,如果对于单元测试有兴趣的话,可以点击阅读链接了解 单元测试

二、Robolectric

Pivotal实验室推出的Robolectric,通过使用Robolectrict模拟Android系统核心库的Shadow Classes的方式,我们可以像写本地测试一样写这类测试,并且直接运行在工作环境的JVM上

简单说,它能够模拟出 Android 系统,直接在jvm测试你的代码,而不用把你的代码编译在你的开发设备上运行。

为什么要使用它,它解决的是什么问题?

众所周知 Android 存在上下文依赖,如果用其他测试框架(如junit),大部分测试功能逻辑没有问题,一旦涉及到 context 的功能基本歇菜,比如我们测试 SharedPreferecnce,测试数据库(创建需要context)等等,所以引入这个框架可以让我们轻松模拟出 context 进行测试。当然,你的 activity 页面同样能进行测试。

如何使用

maven 中央仓库 搜索 robolectric,选择版本,在module build.gradle 添加依赖 testImplementation 'org.robolectric:robolectric:4.2.1'

再添加测试配置

android {
	testOptions {
        unitTests {
            includeAndroidResources = true
        }
    }
}

点击同步,接下来就是编写测试用例,我们随便写一个。
图片

ok,点击运行,我们可以在 run 中看到运行的日志,如下:
日志

如果你的网络没问题,在等待下载成功后,你可以在 C:\Users\Administrator.m2\repository\org\robolectric\android-all 看到完整依赖库文件。那么你也可以停步在这,关闭这篇文章,因为本文讲的是远程下载失败,如何快速修复下载这个问题。

从日志截图我们可以看到,下载地址是 https://oss.sonatype.org/content/groups/public/,提示连接超时。开始我们的补救措施

解决思路
  1. 确定需下载的版本,其实在写完测试用例后,运行,就能在 run 日志中看到版本号,我这边显示的版本是 4.1.2

  2. 确定要下载的文件

    • 版本xx.jar
    • 版本xx.jar.sha1
    • 版本xx.pom
    • 版本xx.pom.s
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值