前言:开发小白,做开发这么久今天才第一次知道了“单元测试”,而这篇文章也算是开始。想要学习更多。
单元测试是什么,做什么用呢?
1.单元测试,就是用来测试代码的。不过不用我们去模拟器或真机上点来点去。省时省力。
2.单元测试重在单元,就是代码段,我们可以对一个小的功能,一个方法来进行单独测试。有时我们想要检测自己写的代码是否正确,需要运行程序,如果我们的app资源很多,那这个过程是很久的。
准备工作
需要导入包 junit:一个单元测试工具
我开发用的AS(Android Studio),它在你创建新的项目的时候自动导入
junit引用
而且还会生成两个包,Test,AndroidTest
包位置
Test | androidTest |
---|---|
位于src/tests目录下的测试是运行在本地电脑Java虚拟机上的单元测试。编写测试,实现功能使测试通过,然后再添加更多的测试…这种工作方式使快速迭代成为可能,我们称之为测试驱动开发, | 跟src/test不同的是运行在设备上,并充分利用Android框架的测试 |
简单说就是:test不需要你连接设备,而androidTest需要连接设备测试。
编写测试代码
准备好了我们就需要编写我们的测试代码了,我了解的也不是很多,现在给大家传的一个计算工具类:
/**
* author: ZhouLei .
* date: On 2018/7/25 0025.
* 位置放在Test包下
*/
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;
}
}
写好工具类了,就需要测试我们的工具类计算的是否准确,现在我们右击我们工具类名 :选择Create New Test
操作步骤1
操作步骤2
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;//导入所有包,下方测试方法里用到,也可单独导入
/**
* author: ZhouLei .
* date: On 2018/7/25 0025.
*/
public class CalculatorTest {
public 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);
}
}
这样我们的测试类就写好了,然后类的左侧可以点击运行,也可以单独运行每个方法。非常简便。
总结
1.单元测试,可以用来测试我们的工具类,逻辑不是那么复杂
2.可以用来测试我们的功能函数,如果一个函数复杂到无法单测,那就说明模块的抽象有问题
3.你是不是有时候会有这样的麻烦呢,自己写好代码要测试还要运行,还要点进去某个功能模块。那还等什么赶紧动手试试吧。
网友评论