Android的单元测试有两种方式:本地单元测试和设备单元测试,本地单元测试可以直接运行在本地机器上面的Java Virtual Machine(JVM)。它的特点是运行时间短,执行效率高,但是没有Android framework的支持,每个文件都可以进行单独的单元测试。

而在Android设备上的单元测试,运行的是一个单独的APK,直接运行到虚拟机或者物理Android设备上,这种单元测试拥有整个App的生命周期和运行环境。

这里主要介绍以运行在Android设备上的单元测试为主。

单元测试文件在哪里?

首先先看下单元测试文件是什么位置,下面是一个Android项目的基本结构:

Android项目结构

其中:

../app/src/test/java目录下是本地单元测试的文件目录。

../app/src/androidTest/java目录下就是设备单元测试的文件目录。

知道了单元测试文件的目录,下面就看下如何配置单元测试环境。

配置单元测试环境

需要使用单元测试,需要引入单元测试的依赖库,在AndroidManifest.xml里面添加uses-library:

.....

然后再配置单元测试框架的启动项:

package="com.jjz">

android:targetPackage="com.jjz"

android:label="test"/>

android.test.InstrumentationTestRunner:是Android单元测试其中的一个启动项,用来启动单元测试。

com.android.test.runner.MultiDexTestRunner:是另一个单元测试的启动项用来启动MultiDex的项目。

这里设置了android:targetPackage与项目的package相同,这样当前单元测试和应用程序会运行在同一个进程里面。

环境配置完成之后,就可以编写单元测试的代码了?

编写单元测试

为了使用单元测试方便,先在项目中增加一个方法,该方法用来比较两个字符串的是否相等:

public class StringUtil {

public static boolean compare(String source, String other) {

if (source == null) {

return other == null;

} else {

return source.equals(other);

}

}

}

在对方法compare进行单元测试,在../app/src/androidTest/java/com.jjz添加文件StringUtilTest.java,文件内容为:

public class StringUtilTest extends AndroidTestCase {

public void testCompare() {

Assert.assertFalse(StringUtil.compare(null,"123"));

Assert.assertTrue(StringUtil.compare("123","123"));

}

}

需要注意的是类名必须使用Test结尾,并且要继承AndroidTestCase,而单方法必须使用test开头。

编写完单元测试之后,就可以运行了。

运行单元测试

在../app/androidTest/java文件夹上面,可以看到运行单元测试的按钮,如图所示:

Run all tests

直接点击Run all tests,可以看到单元测试的结果:

测试结果

这样就完成了一个简单的单元测试。

Android单元测试读写文件,Android-单元测试相关推荐

  1. Android单元测试读写文件,Android Studio单元测试:读取数据(输入)文件

    根据android-gradle-plugin版本: 1.版本1.5和更高版本: 只需把json文件到src / test / resources / test.json并引用它 classLoade ...

  2. android otg读写文件,Android USB Host在USB设备OTG中读/写文件

    我正在编写Android设备是主机的应用程序.用户将USB驱动器连接到Android设备,我的应用程序将在USB驱动器中写入一些文本文件.文本文件的路径就像USB_DRIVE/Data/APP_NAM ...

  3. Android单元测试读写文件,如何在Android单元测试中读取仅测试文件

    对于我的Android应用程序,我正在编写需要读取一些文件的单元测试. 由于这些是仅测试文件,因此我不希望它们出现在res文件夹中,因为我不希望它们最终出现在最终的.apk文件中. 我想做与此问题类似 ...

  4. Android sdcard读写文件(二)

    继续说sdcard读写文件的情况,这篇博客说的是在sdcard根目录中读写文件,着重的而是多种方式的读写文件.直接给出代码: FileService.java package com.llp.clas ...

  5. android 根目录 写文件,android 读写文件、列出根目录文件及新版本权限

    想列出android 内部存储根目录(内部存储也是sd卡形式) File path =Environment.getExternalStorageDirectory(); File[] files=p ...

  6. Android中读写文件的N种方法

    在android或者java中读写文件时,我们常常面临不知道该用哪种方法来实现,今天我们一起来总结一下N种读写文件的方法. 一.文件输入输出流读写文件 public void writeFileStr ...

  7. Android的读写文件权限

    /**测试没通过* 写文件* @param str*/public void write(String str){File file = new File(Environment.getExterna ...

  8. Android 10 读写文件权限

    权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> < ...

  9. android 生成aar文件,Android 中.aar文件生成方法与用法

    https://i.cnblogs.com/EditPosts.aspx?opt=1 无论是用Eclipse还是用Android Studio做android开发,都会接触到jar包,全称应该是:Ja ...

最新文章

  1. Java爬取解析去哪儿景点信息
  2. 在VC中实现模拟键盘,输入内容并显示在ListBox中。
  3. 【Flutter】Flutter 拍照示例 ( Android 应用兼容 Android X | Gradle 版本号 | Gradle 插件版本号 | Android X 支持 | SDK 版本 )
  4. 3.5 向量化实现的解释-深度学习-Stanford吴恩达教授
  5. 杨超越微数据_资料来源同意:数据科学技能超越数据
  6. NC14250 MMSet2
  7. iOS 对arc的一点深入理解
  8. mysql多个外键删除设置_Mysql在删除集上使用多个外键创建表
  9. thinkphp group count连用
  10. DB2报错原因汇总(sqlcode sqlstate)
  11. python从网页提取文本_使用Python进行网页正文提取
  12. 【读书笔记】计算广告(第3部分)
  13. wince 百度地图懒人包_百度导航车载wince版|百度地图winCE版 V10.9.2 安卓版 下载_当下软件园_软件下载...
  14. 攻防世界逆向高手题之reverse-for-the-holy-grail-350
  15. MIT 6.S965 韩松课程 05
  16. python绘制函数曲线
  17. NVIDIA vulkan driver的安装和Jetson平台上vulkan sdk的制作
  18. PowerDesigner画ER图详细教程
  19. (附源码)springboot学生社团管理系统 毕业设计 151109
  20. 类名.class 类名.this 详解

热门文章

  1. 将任意自然数分解为质数的乘积(Java实现)
  2. 一个匹配数字的正则表达式(带详细解释)
  3. Scipy库(win下安装)
  4. Oracle如何实现列转行
  5. 1.1.4. Multi-task Lasso(多任务 Lasso)(多任务学习)
  6. Ubuntu开机启动黑屏,只有鼠标
  7. VMware 安装Ubuntu系统后,启动一直黑屏
  8. 不联网也传染!新型病毒通过USB无线传输传播
  9. Python期末考试总复习资料
  10. react组件的render方法