你为什么要用单元测试

2018-07-25  本文已影响0人  雷根儿

前言:开发小白,做开发这么久今天才第一次知道了“单元测试”,而这篇文章也算是开始。想要学习更多。

单元测试是什么,做什么用呢?

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.你是不是有时候会有这样的麻烦呢,自己写好代码要测试还要运行,还要点进去某个功能模块。那还等什么赶紧动手试试吧。

上一篇下一篇

猜你喜欢

热点阅读