发表于: 2017-06-30 23:02:40

1 1131


今天完成的事情:

今天看了一些java基础语法;

对照着编写了一个单元测试,并且尝试理解junit的用法.

所谓的单元测试就是我们在写完一个函数后,需要对这个函数的方方面面来进行测试,如果需要重新写一个程序并在程序里调用

这个函数显然太麻烦了,于是我们需要使用单元测试包如junit来进行测试.

这里参考了别人写的一篇博文对照着写出了单元测试代码

package andycpp;

public class Calculator {             先添加一个计算的类
    private static int result;       存储结果的静态变量
    public void add(int n) {
        result = result + n;
    }

    public void substract(int n) {
        result = result - 1;      这是博主故意设置的bug,用于测试的时候用的

    }
    public void multiply(int n) {
    }
                           这里的乘法还缺少一句result = result * n;也是故意设置的bug
    public void divide(int n) {
        result = result / n;
    }

    public void square(int n) {  
        result = n * n;             
    }

    public void squareRoot(int n) {
        for (; ;) ;           Bug : 死循环
    }

    public void clear() {             将结果清零
        result = 0;
    }

    public int getResult() {
        return result;
    }

}

以上写的是关于加减乘除运算的一个项目用来进行测试用的.

跟着步骤走会出现一个新的CalculatorTest类,

package andycpp;                    

import static org.junit.Assert.*;             在junit下最终要的一个包就是org.junit.*,首先将它导入

import org.junit.Before;

import org.junit.Ignore;

import org.junit.Test;

public class CalculatorTest {                先创建一个类对象

    private static Calculator calculator = new Calculator();

    

    @Before                           @Before如同一个复原操作,使calculator类不因为上一个测试函数而出现变化

    public void setUp() throws Exception {

        calculator.clear();

    }                       

    @Test                             @Test就是进行测试的标注

    public void testAdd() {

        calculator.add(2);

        calculator.add(3);

        assertEquals(5, calculator.getResult());  括号内第一个为期待结果,第二个为只是计算结果,计算机会得到结果并返回给用户.

    }

    @Test

    public void testSubstract() {

        calculator.add(10);

        calculator.substract(2);

        assertEquals(8, calculator.getResult());

    }

    @Ignore("Multiply() Not yet implemented")      忽视标签,忽视没有生效的乘法

    @Test

    public void testMultiply() {

    }

    @Test

    public void testDivide() {

        calculator.add(8);

        calculator.divide(2);

        assertEquals(4, calculator.getResult());

    }

}

以上就是单元测试代码以及我自己从中学到的一些junit的知识

然后用junit运行我们的测试代码就可以完成单元测试了.

这里测试后显示了加法类正常,减法类出现错误,乘法类不存在,除法类正常.如我们所写的算法大致一样.

转化成debug模式,练习调试,并且查看单步变化的变量值

debug出来了,主要就是五个区域,然后按f6就可以查看单步调试的变量值变化.

明天计划的事情:

明天继续学习spring和junit知识,然后顺便买一台服务器.
遇到的问题:

debug的调试出来不知道怎么看
收获:

今天主要的收获是对于junit的认知与学习


返回列表 返回列表
评论

    分享到