在Android开发过程中,我们往往忽略了单元测试功能, 主要还能还是大家觉得 真机在手,运行调试特别直观。
不过如果我们能够养成单元测试的习惯,相信能更加提升我们应用开发的速度。
当我们创建一个Android Studio项目时,我们会发现项目结构中,多了一个test目录 src/test/java 这个目录,就是AS为了方便我们进行单元测试,而帮我们创建的目录。当然,我们也可以自己进行创建。同时,build.gradle中,还需要添加Junit测试依赖。
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' }
下面,就来创建一个简单的Junit单元测试。
首先,我们需要在测试目录,创建一个测试类,这里我们创建的是Calculator运算类
package com.example.a1.myapplication; /** * Created by 1 on 2017/8/21. */ public class Calculator { public double sum(double a, double b){ return a+b; } public double substract(double a, double b){ return a-b; } public double divide(double a, double b){ return a/b; } public double multiply(double a, double b){ return a*b; } }
在该类中,我们写了加减乘除4个方法,然后,我们需要点击类名,右键/goto/test 生成测试类
这时,在当前目录下,我们会生成一个CalculatorTest测试类
package com.example.a1.myapplication; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; /** * Created by 1 on 2017/8/21. */ public class CalculatorTest { private Calculator mCalculator; @Before public void setUp() throws Exception { mCalculator = new Calculator(); } @Test public void sum() throws Exception { assertEquals(6d, mCalculator.sum(1d, 5d), 0); } @Test public void substract() throws Exception { assertEquals(2d, mCalculator.substract(5d, 4d), 0); } @Test public void divide() throws Exception { assertEquals(3d, mCalculator.divide(20d, 5d), 1); } @Test public void multiply() throws Exception { assertEquals(12d, mCalculator.multiply(2d, 5d), 1); } }
在该类中,setUp方法用来实例化我们的需要测试类,然后,在加减乘除方法调用assertEquals()方法,来计算测试结果,第一个参数,需要填入正确结果,第二个参数为
我们的方法调用,第三个参数为允许误差值。 这里,我们给第一个的参数正确,第二个计算结果错误 第三个计算结果在误差值内,第四个结果没在误差值之外
最后,右键点击运行该类。
运行完成后,我们就可以在信息中查看运行结果,