美文网首页
你为什么要用单元测试

你为什么要用单元测试

作者: 雷根儿 | 来源:发表于2018-07-25 17:10 被阅读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.你是不是有时候会有这样的麻烦呢,自己写好代码要测试还要运行,还要点进去某个功能模块。那还等什么赶紧动手试试吧。

    相关文章

      网友评论

          本文标题:你为什么要用单元测试

          本文链接:https://www.haomeiwen.com/subject/cgopmftx.html