Robolectric 简介
<code>Instrumentation</code>与<code>Roboletric</code>都是针对 Android 进行单元测试的框架,前者在执行 case 时候是以 Android JUnit 的方式运行,因此必
须在真实的 Android 环境中运行(模拟器或者真机),而后者则是以 Java Junit 的方式运行,这里就脱离了对 Android 环境的依赖,而可以直接将 case 在 JVM 中运行,大赞
,因此很适合将 Roboletric 用于 Android 的测试驱动开发。
新建 Android Project
新建 一个Android 项目( RoboletricDemo ),一路默认,这里就不帖 MainActivity 的代码,代码很简单,该示例的主界面是一个 TextView,显示的内容为 Hello world!
,界面中还有一个 Button,点击 Button,TextView 的内容会变为Hello xuxu!
,呵呵。。
配置 Gradle
-
导入相关的库文件
//robolectric-test testCompile "org.robolectric:shadows-multidex:3.0"
-
配置 Build Variants
在 Build Variants 面板中选择 Unit Tests
![](https://img.haomeiwen.com/i1387450/4ea6edc0a2483e12.jpg)
现在,万事俱备,让我们开始写第一个测试吧。首先,创建一个非常简单的被测类:Calculator类。
Calculator.java
package com.example.testing.testingexample;
public class Calculator {
public double sum(double a, double b){
return 0;
}
public double substract(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…"
![](https://img.haomeiwen.com/i580359/729c021ff61b0dc7.png)
在打开的对话窗口中,选择JUnit4和"setUp/@Before",同时为所有的计算器运算生成测试方法。
![](https://img.haomeiwen.com/i580359/19f96a03d2fa811a.png)
这样,就会在正确的文件夹内(app/src/test/java/com/example/testing/testingexample)
生成测试类框架,在框架内填入测试方法即可。下面是一个示例:
Calculator.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 testSubstract() throws Exception {
assertEquals(1d, mCalculator.substract(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);
}
}
运行单元测试
终于到运行测试的时候了!右键点击CalculatorTest
类,选择Run > CalculatorTest。也可以通过命令行运行测试,在工程目录内输入:
./gradlew test
查看报告
执行完测试之后,会在 app/build/reports/tests/
目录下生成相应地测试报告,使用浏览器打开
网友评论