1、概述
在这个Demo中,您将学习如何在Android Studio中对您的项目进行测试,在您的开发机器上编写单元测试并在本地运行,以及如何在设备上进行功能性UI测试。
你将学到什么
1、更新Gradle构建文件添加包含JUnit单元测试框架和Android Testing Support Library支持库;
2、编写单元测试代码在本机上的Java VM虚拟机 上运行;
1、更新Gradle构建文件添加包含JUnit单元测试框架和Android Testing Support Library支持库;
2、编写单元测试代码在本机上的Java VM虚拟机 上运行;
3、将测试运行到设备或模拟器上,运行Espresso测试;
你需要准备什么
● Android Studio版本1.2及以上
● Android4.0以上的设备
2、创建一个新的Android Studio项目
如果您是首次启动Android Studio,请从“欢迎”屏幕中选择“启动一个新的Android Studio项目”。 如果已经打开了一个项目,请进入File> New> New Project ...
“创建新项目”向导将指导您完成整个过程。 在第一个屏幕上输入以下内容:
应用程序名 -
TestingExample
包名 -
testing.example.com
你可以按运行按钮来检查应用程序是否运行正常。 您应该从列表中选择并启动仿真器,或者确保您的设备已通过USB正确连接并启用了调试功能。
该应用程序现在做的不多,但是您应该看到一个显示“Hello world!”和您的应用程序名称的屏幕。
3、配置单元测试支持
在开始编写测试之前,让我们通过一个简短的清单,确保您的项目配置正确。首先,确保在“Build Variants”窗格中的“Test Artifact”下选择“Unit Tests”。
默认Android Studio创建新项目会生成如下代码结构,请确认您的最终项目层次结构应如下所示:
最后,打开您的模块的build.gradle(Module:app)文件,并将JUnit4添加到您的依赖项部分,然后单击Gradle同步按钮(默认创建项目已经添加,如老版Android Studio请手动添加)。
build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.1'
testCompile 'junit:junit:4.12'
}
4、创建你的第一个单元测试
现在一切都已经完成,现在是时候开始编写第一个测试了。 但是为了做到这一点,你将需要编写一些测试代码。 为此,我们来创建一个非常简单的Calculator类。 这将是我们所谓的“被测试的类”。
我们将为最常见的算术运算添加方法,如加法和减法。 将以下代码复制并粘贴到您的编辑器中。 不要担心实际的实现,只是让所有的方法现在返回0。
Calculator.java
package com.example.testing.testingexample;
public class Calculator {
public double sum(double a, double b){
return 0;
}
public double subtract(double a, double b){
return 0;
}
public double divide(double a, double b){
return 0;
}
public double multiply(double a, double b){
return 0;
}
}
Android Studio为您提供了创建实际测试类的快速方法。 只需右键单击编辑器中的Calculator类声明,然后选择Go to> Test,然后选择“Create a new test ...”
在打开的对话窗口中,选择JUnit 4并选择“setUp / @ Before”选项,并勾选所有方法,然后点击确认,为我们的Calculator操作生成测试方法。
在弹出对话框中,将测试文件生成到已经创建的测试包目录下,即(app / src / test / java / com / example / testing / testingexample)中。修改为如下代码,下面是一个如何测试Calculator操作的例子:
CalculatorTest.java
package com.example.testing.testingexample;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class CalculatorTest {
private Calculator mCalculator;
@Before
public void setUp() throws Exception {
mCalculator = new Calculator();
}
@Test
public void testSum() throws Exception {
//expected: 6, sum of 1 and 5
assertEquals(6d, mCalculator.sum(1d, 5d), 0);
}
@Test
public void testSubtract() throws Exception {
assertEquals(1d, mCalculator.subtract(5d, 4d), 0);
}
@Test
public void testDivide() throws Exception {
assertEquals(4d, mCalculator.divide(20d, 5d), 0);
}
@Test
public void testMultiply() throws Exception {
assertEquals(10d, mCalculator.multiply(2d, 5d), 0);
}
}
将代码复制到您的编辑器 或 使用JUnit框架提供的语法编写您自己的测试方法。
--------------------------------------------------------------------------------------------------------------------
Android测试,Android Studio中的单元测试、UI测试和自动化测试使用说明第二篇
--------------------------------------------------------------------------------------------------------------------