编写和运行测试时Android APP开发周期中的重要的一环。好的测试可以让你非常容易的在开发过程中发现bug,提升你对自己代码的自信。使用Android Studio,你可以在物理设备或者虚拟机中运行本地单元测试或者仪表测试(instrumented tests)(仪表测试我自己发明的词汇),这样你就可以分析结果,在开发环境中更改你的代码。

本地单元测试是指无需访问Android Framework或者一台Android 设备,直接在你的开发机器中运行的测试。
仪表测试直接运行在你的设备或者虚拟机中。这些测试可以访问设备的信息,比如在测试状态下获取应用的Context。仪表测试可用于单元测试、UI测试或APP组件整合测试(Activity、Service、Content Provider)。

配置本地单元测试

在你的Android Studio项目中,你必须将本地单元测试的源码保存在一个特定的目录(src/test/java)。这可以将你的所有的测试类集中放置到一起。
在你编写代码时,你可以相应的添加相应的本地单元测试类,一般就是在原有类的名称的基础上添加Test。比如:
Src/main/java/Dog.java 相应的测试类 src/test/java/DogTest.java
为了让你的项目使用Junit 4 framework提供的标准的API,你需要配置测试依赖(jar 包)。如果你需要与Android依赖进行交互,需要添加Mockito库来声明你的本地单元测试。
在你的build.gradle(官方说是最顶层的那个,我放进去报错,放在模块中也可以用)中,你需要声明如下依赖:

dependencies {// 必须的-- JUnit 4 frameworktestCompile 'junit:junit:4.12'// 可选的 -- Mockito frameworktestCompile 'org.mockito:mockito-core:1.10.19'
}

配置仪表测试

在你的Android Studio项目中,你必须将仪表测试的源码保存在一个特定的目录(src/androidTest/java)。
为了让你的项目使用Testing Support Library,你需要配置Android测试依赖。
在你的build.gradle中,你需要声明如下依赖:

dependencies {androidTestCompile 'com.android.support:support-annotations:23.0.1'androidTestCompile 'com.android.support.test:runner:0.4.1'androidTestCompile 'com.android.support.test:rules:0.4.1'// 可选的 -- Hamcrest 库androidTestCompile 'org.hamcrest:hamcrest-library:1.3'// 可选的 – Espresso(UI测试)androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'// 可选的 – Automator(UI测试)androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}

为了使用Junit 4 测试类,确保在build.gradle文件中生命了默认的AndroidJUnitRunner。

android {defaultConfig {testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}
}

测试配置

Android Studio有两种测试配置:Android仪表测试和单元测试。在之前,你只能同一时间内运行一种测试。现在,可以同时运行。

构建和运行测试

Android Studio在开发环境中提供了用于构建、运行和分析你的测试的所有的工具。
需要注意的是,当你运行仪表测试时,Android Studio会关掉Instant Run。

运行本地单元测试

为了运行你的本地单元测试,你需要:
1、 在Project窗口,右键单击,同步你的项目。
2、 在Project窗口,找到相应的测试类,右键单击,选择Run。
Gradle的安卓插件会编译放在(src/test/java)下的源码,生成一个测试app,在本地执行。Android Studio会将结果显示在Run窗口

运行仪表测试

为了运行你的仪表测试,你需要在Project窗口中,找到你的仪表测试的类或方法,右键单击运行。

Gradle的安卓插件会编译放在(src/androidTest/java)下的源码,生成一个测试app和生产apk,并将两个apk安装到已经连接的设备或虚拟机中。并在Run窗口中输出结果。

本文作者:宋志辉
个人微博:点击进入

转载于:https://www.cnblogs.com/hainange/p/6153453.html

1、Android测试入门相关推荐

  1. Android测试入门学习

    一,Android测试新人练习--安装及文件传输 [课前准备] Android测试环境搭建 1.下载并安装JDK: http://www.oracle.com/technetwork/java/jav ...

  2. android测试入门选择哪个工具何时,Android单元测试——辅助工具介绍

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 阅读本文大约需要8分钟 目录 最近在学习单元测试的相关知识,在这里我将分享一下我在学习过程中,使用到的一些辅助工具或框架 ...

  3. Android渗透测试Android渗透测试入门教程大学霸

    Android渗透测试Android渗透测试入门教程大学霸 第1章  Android渗透测试 Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机.平板等.目前 ...

  4. Android 渗透测试学习手册 第一章 Android 安全入门

    第一章 Android 安全入门 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 Android 是当今最流行的智能手机操作系统之一. 随着人气的增加,它存在很多安全 ...

  5. Android Monkey测试入门:安装sdk、studio、模拟器,并分析monkey日志

    Android Monkey测试入门:安装sdk.studio.模拟器,并分析monkey测试报告结果 1. 安装Java JDK和android SDK 2. 安装Andriod studio及模拟 ...

  6. Android S XTS 测试入门

    目录 Android XTS 测试入门 测试前的准备工作 CTS GTS GSI VTS STS CTSV APTS 常用测试命令 Android XTS 测试入门 测试前的准备工作 1.最好使用刚刷 ...

  7. Android编译系统入门(二)

    Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...

  8. Android 测试支持库 1.0 现已发布!

    我们非常高兴地宣布,Android 测试支持库 (ATSL) 1.0 版现已发布. ATSL 1.0 版对现有测试 API 进行了重要更新,不仅添加了许多新功能.还提升了性能和稳定性,同时还修复了若干 ...

  9. 《Delphi XE6 android 编程入门教程》推荐

    近5.6年已经没有看见关于delphi的新技术的书出来了(看来在国内delphi的使用量确实很低了), 高勇同学最近出了一本<Delphi XE6 android 编程入门教程>,上周刚拿 ...

最新文章

  1. 复制(主从复制、读写分离)
  2. PyTorch tensorboard报错:TensorBoard logging requires TensorBoard version 1.15 or above
  3. 我从#100DaysOfCode中学到的东西
  4. 优化就是在和时间赛跑
  5. 使用selenium启动(无界面)浏览器的隐私模式
  6. 亚马逊AWS IoT
  7. 北漂7年,一位大龄程序员的安全着陆之旅
  8. git bash here创建项目无法选择m_版本控制Git基础及使用详解
  9. 代码规范与读写可维护性
  10. 乱码问题的原理及解决方法
  11. linux磁盘加密bitlocker,Azure Disk Encryption(Azure磁盘加密)能用在Linux和Windows下
  12. 图卷积神经网络代码讲解,卷积神经网络python实例
  13. [MIT]微积分重点 第四课 指数函数(exponential) 学习笔记
  14. 2019年4月份学习总结,项目驻场和读书两则
  15. springmvc java.lang.IllegalStateException: getOutputStream() has already been called for this respon
  16. CTFshow之36Dweb做题记录
  17. python库源码分析_python第三方库Faker源码解读
  18. 正版Xshell免费使用
  19. django自带模块实现翻页功能
  20. 资深摄影师眼中,青岛值得一游的景点有哪些?

热门文章

  1. 【入门经典】在母版页中使用CSS
  2. pythonsparkpickle_Learning Spark (Python版) 学习笔记(一)----RDD 基本概念与命令
  3. 机器视觉-EasyDL商品检测-标准版-Demo
  4. POJ2771最大独立集元素个数
  5. 00-基于Vue的博客项目展示
  6. 【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )
  7. 【Android 逆向】Android 权限 ( 查看内存信息 | 查看 CPU 信息 | 查看电池信息 | 查看账户信息 | 查看 Activity 信息 | 查看 Package 信息 )
  8. 【算法】哈希表 ( 两数之和 )
  9. 【计算理论】上下文无关语法 ( 代数表达式 | 代数表达式示例 | 确定性有限自动机 DFA 转为 上下文无关语法 )
  10. 1.虚拟化的历史和定义