编写和运行测试时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 framework
testCompile 'junit:junit:4.12'
// 可选的 -- Mockito framework
testCompile '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窗口中输出结果。

本文作者:宋志辉

个人微博:点击进入

1、Android测试入门的更多相关文章

  1. Android测试入门学习

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

  2. Android测试入门篇

    Android本身是一套软件堆叠(Software Stack),或者成为软件叠层架构,叠层主要分成三层:操作系统.中间件和应用程序. Android构架 1. Application 应用程序层:用 ...

  3. Android 测试入门之---Monkey test

    这周重点学习的也是Android monkey test 的一些相关知识,也对其进行了初步的操作和试验.讲学习资料整理如下 : Monkey是一个命令行工具 ,可以运行在模拟器里或实际设备中.它向系统 ...

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

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

  5. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

  6. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  7. Hello, Android 快速入门

    Hello, Android Android 开发与 Xamarin 简介 在这两节指南中,我们将 (使用 Xamarin Studio或 Visual Studio)建立我们的第一个 Xamarin ...

  8. 【Android测试】【第九节】MonkeyRunner—— 初识

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4836815.html 不得不说两句,过了这么久才再次更新博 ...

  9. Android实现入门界面布局

    Android实现入门界面布局 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 代码实现 首先是常量的定义,安卓中固定字符串应该定义在常量中. stri ...

随机推荐

  1. 求n个数的最小公倍数

    解决的问题: 对于一个长度为n序列ai,求ai的最小公倍数 解析: 我们知道,如果求两个数a,b的LCM=a*b/gcd(a,b),多个数我们可以两两求LCM,再合并,这样会爆long long 所以 ...

  2. 一则利用内核漏洞获取root权限的案例【转】

    转自:https://blog.csdn.net/u014089131/article/details/73933649 目录(?)[-] 漏洞描述 漏洞的影响范围 漏洞曝光时间 漏洞产生的原因 漏洞 ...

  3. python raise和assert的区别

    python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...

  4. Linux下运行当前目录需要加./的原因

    在Windows下运行当前目录的文件,可以直接输入文件全名,就能够运行该文件.但对于Linux则必须加上./文件名才能运行.对于这一点表示很疑惑,最后查阅了资料才弄明白. 原因如下: 1.在Windo ...

  5. java随机生成字符串和校验

    首先定义字符串 String a = "0123456789"; // 数字 String b = "abcdefghijklmnopqrstuvwxyz"; ...

  6. 光电转研发:和计算机没有一点关系的专业怎么去bat类的公司

    光电 女 其实编码能力一般般,拿到百度腾讯研发offer. 一来幸运,二来真的想说行动决定了结果.研一没事就出去家教充实自己赚点钱,研二就开始找实习,去了网易,海康威视,百度实习.感觉还是吃了不少苦的 ...

  7. Chrome浏览器Postman插件安装使用

    最近调试后台接口一直在使用的工具,由于换了新的电脑重新安装了一下PostMan.随便记录一下如何安装使用这个插件. 闲言不要谈,直接上步骤: 1. 首先必须有chrome浏览器,这个相信大家肯定都安装 ...

  8. 16. 3Sum Closest(中等)

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  9. numpy的初探

    # data = numpy.genfromtxt("C:\\Users\\Admin\Desktop\\111.txt", delimiter='\t', dtype='str' ...

  10. jmeter分布式测试远程连接失败

    jmeter分布式部署其实很简单.但今天测试的时候发现了一个坑,远程连接一直失败. 原因:服务器上部署了slave,而这台服务器上有多个网卡.举个例子:ip分别为:192.168.100.6,10.1 ...