查看原文
其他

必知必会 | 拒绝知识盲点 测试相关的方方面面都在这儿

2018-03-20 鸿洋 鸿洋

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


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


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


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


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



1压力测试


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


  • Android Monkey 压力测试

    http://dwz.cn/7CubU8


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



http://www.imooc.com/learn/729


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


2JUnit框架的使用


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


  • Android单元测试 - 如何开始?

    https://www.jianshu.com/p/bc99678b1d6e


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


对于Junit的好文:


  • Android单元测试(一):JUnit框架的使用

    http://blog.csdn.net/qq_17766199/article/details/78243176


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


附带几篇:


  • Android单元测试之JUnit框架

    https://maxwell-nc.github.io/android/junitTest.html

  • Android单元测试(三):JUnit单元测试框架的使用

    http://chriszou.com/2016/04/18/android-unit-testing-junit.html


3Mockito框架的使用


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


  • Android单元测试 - 几个重要问题

    https://www.jianshu.com/p/f5d197a4d83a


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


然后开始Mockito:


  • Android单元测试(二):Mockito框架的使用

    http://blog.csdn.net/qq_17766199/article/details/78450007


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


  • Android单元测试之Mockito框架

    https://maxwell-nc.github.io/android/mockitoTest.html


  • Android 单元测试 Mockito使用详解

    http://blog.csdn.net/mq2553299/article/details/77014651


  • Android单元测试(四):Mock以及Mockito的使用

    http://chriszou.com/2016/04/29/android-unit-testing-mockito.html


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



https://github.com/hehonghui/mockito-doc-zh


4PowerMock框架的使用


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


  • Android单元测试(三):PowerMock框架的使用

    http://blog.csdn.net/qq_17766199/article/details/78573390


  • Android单元测试之PowerMockito

    https://www.jianshu.com/p/6631bd826677


  • Android最佳Mock单元测试方案:Junit + Mockito + Powermock

    http://www.snowdream.tech/2016/08/03/android-mock-test/


  • Android单元测试(一)

    https://www.jianshu.com/p/0a8bbfe6cba2


5Robolectric框架的使用


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


  • Android单元测试(四):Robolectric框架的使用

    http://blog.csdn.net/qq_17766199/article/details/78710177


  • Android 单元测试--Robolectric

    https://www.diycode.cc/topics/377


  • Android单元测试(七):Robolectric,在JVM上调用安卓的类

    http://chriszou.com/2016/06/05/robolectric-android-on-jvm.html


  • Android单元测试之Robolectric框架

    https://maxwell-nc.github.io/android/robolectricTest.html


  • Android单元测试研究与实践-美团

    https://tech.meituan.com/Android_unit_test.html


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


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


  • Android单元测试(三)

    https://www.jianshu.com/p/ce6697f8434e


  • Android增量代码测试覆盖率工具-美团

    https://tech.meituan.com/android-jacoco-practace.html


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


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


  • Espresso入门

    http://shiyuanjie.cn/2016/11/23/Espresso%E5%85%A5%E9%97%A8/


  • Android使用Espresso进行UI自动化测试

    https://juejin.im/post/5a30e0996fb9a045211eb341


  • Android自动化测试--Espresso框架使用

    http://blog.csdn.net/qq_17766199/article/details/79183901


  • Android 自动化测试 Espresso篇:简介&基础使用

    http://blog.csdn.net/mq2553299/article/details/74067002


  • Android 自动化测试 Espresso篇:异步代码测试

    http://blog.csdn.net/mq2553299/article/details/74490718


官方文档:

https://developer.android.com/training/testing/ui-testing/espresso-testing.html


8一些实战


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


  • Android单元测试(五):网络接口测试

    http://blog.csdn.net/qq_17766199/article/details/78881992


  • Android单元测试(六):RxJava测试

    http://blog.csdn.net/qq_17766199/article/details/78989664


  • Android单元测试(七):MVP与单元测试

    http://blog.csdn.net/qq_17766199/article/details/79183901


  • Android单元测试(八):Dagger与单元测试

    http://blog.csdn.net/qq_17766199/article/details/79277483


微信中不支持外链,更好的体验可以点击阅读原文访问,以上所有文章会同步到wanandroid。


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


如果你想要跟大家分享你的文章,欢迎投稿~

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存