当你在网上查找Android Studio单元测试的时候,有大量的资料教程,但是都不完整,至少跟着教程一步步的是无法看到自己想看的效果的,所以我写了此篇,想尽量完整地向大家展示单元测试的编写过程。
  Android Studio 自带的单元测试功能用起来很简单,它不需要修改gradle或者AndroidManifest.xml文件里的内容,直接编写测试用例即可。不过即使是这样,我相信大多数的程序员都还是不喜欢编写测试用例的,因为这是一件很繁琐的事情而且好像显得很多余:明明运行一下程序,观察运行结果能知道对与错了,为什么还要通过代码来进行判断呢?确实,如果只是普通的一个小程序,编写测试用例是有些多此一举,但是当你正在维护一个非常庞大的工程时,你会发现编写测试用例是非常有必要的。
  举个例子吧!比如你确实正在维护一个很庞大的工程,里面有许许多多数也数不清的功能。某天,你的领导要求你对其中一个功能进行修改,难度也不高,你很快解决了,并且测试通过。但是几天之后,突然有人发现其他功能出现了问题,终定位出来的原因竟然是你之前修改的那个功能所导致的,这下你可冤死了。
  不过千万别以为这是天方夜谭,在大型的项目中,这种情况还是很常见的。由于项目里的很多代码都是公用的,你为了完成一个功能而去修改某行代码,完全有可能因此而导致另一个功能无法正常工作。
  所以,当项目比较庞大的时候,一般都应该去编写测试用例的。如果我们给项目的每一项功能都编写了测试用例,每当修改或新增任何功能之后,将所有的测试用例都跑一遍,只要有任何测试用例没有通过,说明修改或新增的这个功能影响到现有功能了,这样可以及早地发现问题,避免事故的出现。
  一、目录介绍

  目录结构
  mian:项目代码;
  androidTest:编写Android测试用例使用;
  test:编写Java测试用例使用,如果所写的测试代码没有使用android sdk(android.*下的代码),那么可以在test目录下新建测试用例;
  二、运行我们的测试用例
  Android Studio 本身是支持Android单元测试的,我用的是 AS2.2.3 版本,它甚至无需像之前的版本那样需要进行繁琐的配置。

  Android Studio 2.2.3 版本
  (1)编写测试用例
  这里我们首先进入到Java的测试类当中:

  Java单元测试类
  其中“assertEquals(4, 2 + 2);”是用来断言4和2+2是否是相等的语句,我们先不做改变。
  点击14行左侧的按钮,然后选择第一项运行:

  运行测试用例
  这时观察到底部Run面板显示为绿色横条,表示为运行测试成功:

  底部Run面板
  然后我们把“assertEquals(4, 2 + 2);”改为“assertEquals(4, 5);”。
  按照刚才的步骤运行测试用例:

  运行测试用例
  由于 4 和 5 是不相等的,那么断言失败,所以Run面板中显示出红色并表示出了错误的原因。
  到这里我们自然明白了测试用例是什么,测试用例其实是一段普通的程序代码,通常是带有期望的运行结果的,测试者可以根据终的运行结果来判断程序是否能正常工作。
  那么单元测试又是什么呢?单元测试是指对软件中小的功能模块进行测试,如果软件的每一个单元都能通过测试,说明代码的健壮性已经非常好了。下面我们一起来进行一下Android的单元测试。