发表于: 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的认知与学习
评论