Android Studio单元测试

概述

Android中也提供了一套测试框架,项目中主要用到的是AndroidTestCase类和ActivityInstrumentationTestCase2类,前者用于测试一些需要传入Context的工具类,后者用于测试一些自定义View等与界面相关的。虽然单元测试可以免去运行整个APP,但还是需要运行在模拟器或测试机器上,这里使用Genymotion模拟器。

例子

测试框架中提供了一个方法assertEquals(expected,actual)供调用,它接收两个参数,第一个参数是期望值,第二个参数是实际值,如果期望值与实际值不等,那么它就会抛出异常,表明该测试没通过。
Android Studio单元测试_第1张图片

首先,写个测试用例
Android Studio单元测试_第2张图片

testSPUtil主要测试的是,数据是否正常存储(SharedPreferences Util),因此刚开始设定了一些值,并通过SPUtil进行存储,最后再将数据取出来,通过assertEquals跟原始数据进行比较,这样就能检测出SPUtil的功能是否正常。
写好用例后,选中方法名右键,run
Android Studio单元测试_第3张图片

Android Studio单元测试_第4张图片

如果测试通过的话,就出现如图所示,是绿色的标注。那如果测试未通过又是什么样呢?接下来,将测试代码稍作修改。
Android Studio单元测试_第5张图片

注意上图红色标注的地方,由于原始数据a=”a”,而获取到的数据a=”-a”,所以此时是不相等的。

Android Studio单元测试_第6张图片

运行后,发现有异常信息抛出,并且能定位到异常代码的位置,这时就是测试没通过了。

那如果这个测试类里面有N个测试方法,那要在发布前检查一下这些工具类是否正常,是不是就要每个方法挨个的去运行检测呢?接下来介绍的方法可以解决此问题。

再写一个测试方法testDao
Android Studio单元测试_第7张图片

Android Studio单元测试_第8张图片

点击Edit Configurations…,打开Run/Debug Configurations界面,点击“+”新建一个Android Tests,并取名为Test,这里Test的范围可选项有All in Module、All in Package、Class、Method,这里选择Class,其它先不考虑,然后选择我们测试Class所在的位置。点击OK保存。最后运行Test。
Android Studio单元测试_第9张图片

Android Studio单元测试_第10张图片

分别是测试通过和没通过的情形

你可能感兴趣的:(android,单元测试,android-studio)