Junit单元测试实验报告

  • 格式:doc
  • 大小:144.50 KB
  • 文档页数:10

.
可编辑
实验二Junit单元测试实验报告

实验内容:利用Junit对实验程序Point2d.java进行单元测试
实验目的:掌握单元测试的方法,掌握在Eclipse里进行Junit测试的技术。
实验步骤和结果:
1、修改之前的Calculator的测试结果:
(1)自动生成的CalculatorTest类 代码:
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: 正确的应该是 result =result-n

}
public void multiply(int n) {
} // 此方法尚未写好
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;
}
}

(2)运行结果:
.

可编辑
自动生存的测试类
完善测试类后的运行结果
.

可编辑
2、修改和完善Calculator类:
package andycpp;

public class Calculator {
private static int result; // 静态变量,用于存储运行结果
public void add(int n) {
result = result
+ n;

}
public void substract(int n) {
result = result
- n; //Bug: 正确的应该是 result =result-n

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

}
public void divide(int n) {
result = result
/ n;

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

}
public void squareRoot(int n) {
result=(int)Math.sqrt
(n); //Bug : 死循环
.
可编辑
}
public void clear() { // 将结果清零
result
= 0;

}
public int getResult() {
return result;
}
}

3、修改后的Calculator的测试用例:
(1)加法:操作数:2,、3;结果:5
(2)减法:操作数:10、2;结果:8
(3)乘法:操作数:10、2;结果:20
(4)除法:操作数:8、2;结果:4
(5)平方:操作数:3;结果:9
(6)开方:操作数:4;结果:2

代码:
package andycpp;

import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
.
可编辑
import org.junit.Test;

public class CalculatorTest {
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception {
calculator.clear();
}

@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());

}
.
可编辑
@Test
public void testMultiply() {
calculator.add(10);
calculator.multiply(2);
assertEquals(20, calculator.getResult());
}

@Test
public void testDivide() {
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
}

@Test
public void testSquare() {
calculator.square(3);
assertEquals(9, calculator.getResult());

}
@Test
public void squareRoot() {
.
可编辑
calculator.squareRoot(4);
assertEquals(2, calculator.getResult());
}
}

4、修改后的Calculator的测试结果:

结果正确
5、Point2d的测试用例:
测试用例1: pt1 = (0.0, 0.0)
pt2 = (4.0, 3.0)
import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;
.
可编辑
public class Point2dTest {
private static Point2d pt1=new Point2d();
private static Point2d pt2=new Point2d(4.0,3.0);

@Before
public void setUp() throws Exception {
}

@Test
public void testDistanceFrom() {
assertEquals(5, pt1.distanceFrom(pt2
),0.1);

}

@Test
public void testDistanceFromOrigin() {
assertEquals(5,pt2
.distanceFromOrigin(),0.1);

}

}
6、Point2d的测试结果:
.

可编辑
两个测试用例结果均正确