概述

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

例子

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

首先,写个测试用例

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

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

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

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

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

再写一个测试方法testDao

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

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

更多相关文章

  1. Android(安卓)自定义RecyclerView.OnScrollListener,实现上拉分页
  2. Android(安卓)NDK学习笔记3-入门案例篇
  3. launcher修改--获取屏幕缩略(预览)图
  4. Android(安卓)Studio Error: null, Cannot fit requested classe
  5. android 退出整个程序
  6. Android中Log信息的输出方法
  7. Android(安卓)Asynchronous Http Client-Android异步网络请求客
  8. Android异步加载图像(含线程池,缓存方法)
  9. Android(安卓)更新UI的两种方法——handler和runOnUiThread() -

随机推荐

  1. Android之手机壁纸的改变
  2. 尝试 Android(安卓)Bilibili/ijkplayer
  3. android testing (三)————关于Android(
  4. Android调用系统程序
  5. 丰富多彩的Android(安卓)onTouch事件
  6. Android(安卓)让TextView变成Dialog
  7. Android(安卓)MediaExtractor 浅析
  8. 理解Android进程创建流程(转)
  9. android 全部命令
  10. android虚拟按键NavigationBar的判断