定义一个类继承AndroidTestCase
,在类中定义方法,即可测试该方法
在指定指令集时,targetPackage
指定你要测试的应用的包名
定义使用的类库
断言的作用,检测运行结果和预期是否一致
dependencies {
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.9.5"
}
android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}
首先,创建一个非常简单的被测类:Calculator
类。
然后,向类中添加一些基本的算术运算方法,比如加法和减法。将下列代码复制到编辑器中。不用担心实际的实现,暂时让所有的方法返回0。
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…
”
在打开的对话窗口中,选择JUnit4
和”setUp/@Before
“,同时为所有的计算器运算生成测试方法。
这样,就会在正确的文件夹
(app/src/test/java/com/example/testing/testingexample)
生成测试类框架,在框架内填入测试方法即可。下面是一个示例:
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);
}
}
请将代码复制到编辑器或者使用JUnit
框架提供的断言来编写自己的测试。
终于到运行测试的时候了!右键点击CalculatorTest
类,选择Run
> CalculatorTest
。也可以通过命令行运行测试,在工程目录内输入:
./gradlew test
无论如何运行测试,都应该看到输出显示4个测试都失败了。这是预期的结果,因为我们还没有实现运算操作。
让我们修改Calculator
类中的sum(double a, double b)
方法返回一个正确的结果,重新运行测试。你应该看到4个测试中的3个失败了。
public double sum(double a, double b){
return a + b;
}