必知必会 | Android 测试相关的方方面面都在这儿

456 阅读4分钟
原文链接: www.wanandroid.com

本文在我的微信公众号:hongyangAndroid原创首发。

很多时候,由于迭代周期有限,开发任务多、时间紧,导致很多产品基本没有单元测试,从而也导致很多同学这块都是盲区。

其实我对测试接触也非常少,所以深度方面是很难做到了,大家作为扫盲文对待即可,当然我相信只要能够初步的了解相关文章,大家都有再以此深入学习下去的能力。

此文主要是因为唯鹿之前给我投递了几篇单元测试的文章,我去他博客目录看了下,可以说其实是一个系列的文章,单篇很难进行推送。故以此为起点,给大家做一个一整套的测试相关的文章整理。

文章带引用的部分,为从最近一篇文章中的引用内容。资源可能会已经过期,想注意鉴别。

以后该方面文章都叫必知必会系列了,历史该系列:

压力测试

这个应该是最常见的,往往不做单元测试,但是压力测试还是会做的。多数都是使用Monkey,不是很复杂,推荐一篇不错的文章:

当然了,万事开头难,然后中艰难,最后结果难。开头很关键,这里还推荐个免费的视频教程:

屏幕快照 2018-03-18 下午3.42.44.png

www.imooc.com/learn/729

到这儿应该能搞定压力测试了。

JUnit框架的使用

现在终于到单元测试了,首先推荐一篇:

作者推荐最好从Junit、Mockito开始入门。

对于Junit的好文:

介绍了基础用法、参数化测试、assertThat用法、Rule用法等。

附带几篇:

Mockito框架的使用

再继续学习之前,不妨先看下:

了解下各种依赖问题如何面对。

然后开始Mockito:

作者的话写的很好:在实际的单元测试中,我们测试的类之间会有或多或少的耦合,导致我们无法顺利的进行测试,这时我们就可以使用Mockito,Mockito库能够Mock(我喜欢理解为模拟)对象,替换我们原先依赖的真实对象,这样我们就可以避免外部的影响,只测试本类,得到更准确的结果。

以及Mockito框架中文文档(早期Simple组织翻译):

PowerMock框架的使用

PowerMock ,它拓展了Mockito框架,从而支持了mock static方法、private方法、final方法与类等等。

Robolectric框架的使用

开发工具提供了我们开发和编译的JVM环境,要运行app需要Dalvik或ART环境。而单元测试的是一个运行过程,我们没有相应的环境,所以运行依赖android.jar包的方法时将会抛出RuntimeException("stub!")。那么怎么办呢?使用Robolectric可以解决此类问题,它通过实现一套JVM能运行的Android代码,从而做到脱离Android运行环境进行测试。

JaCoCo生成单元测试及覆盖率报告

本文介绍了如何利用JaCoCo生成单元测试及覆盖率报告并在Jenkins显示测试报告结果。

Espresso 谷歌官方提供用于UI交互测试

Espresso最强大的功能就是UI自动化测试,这是其他单元测试框架达不到的,我们可以让Espresso处理它拿手的UI界面测试,而网络请求等业务处理,我们可以交给其他测试框架去处理,比如Mockito(后文再讲)。

一些实战

RxJava,MVP,Dagger这些库我们用的越来越多,那么如何更加方便的对这些进行测试呢?

感谢所有作者,如果有任何建议或者补充欢迎留言,会后续更新到原文中。