实验报告五
课程名称:软件测试
学生姓名:董月
班级:浦计1104班
学号:P1401110402
指导教师:韩志刚
实验日期:2014-5-8
南京工业大学电子与信息学院
实验五
一、实验内容
用java语言编写一个计算器类,求实现加、减、乘、除、求平方根、求绝对值、求倒数1/x,方法,并用junit进行对象类的单元测试。
参阅帮助文档。
(说明,设计求除法、求倒数的方法,可在方法中不检测x是否为0,测试用例用y/0去测试、求平方根可不检测x>0,用负数测试)
二、实验步骤
首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。
建立一个hzg包:
建立一个Calculator类:
把代码输进类中:
package hzg;
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) {
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);
}
public void clear() { // 将结果清零
result = 0;
}
public void reciprocal(int n) {
result=1/n;
}
public void absolute(int n) {
result=Math.abs(n);
}
public int getResult() {
return result;
}
}
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:
然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。
第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,在弹出的对话框中,进行相应的选择加、减、乘、除,之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。
只需要将这些测试用例稍作修改即可使用。
完整的CalculatorTest代码如下:
package hzg;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class CalculatorTest {
private static Calculator calculator = new Calculator();
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception { }
@Before
public void setUp() throws Exception {
calculator.clear();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAdd() {
calculator.add(3);
calculator.add(4);
assertEquals(7, calculator.getResult());
}
@Test
public void testSubstract() {
calculator.add(8);
calculator.substract(2);
assertEquals(6, calculator.getResult());
}
@Test
public void testMultiply() {
calculator.add(4);
calculator.multiply(5);
assertEquals(20, calculator.getResult());
}
@Test
public void testDivide() {
calculator.add(6);
calculator.divide(3);
assertEquals(2, calculator.getResult());
}
@Test
public void testSquare() {
calculator.square(-2);
assertEquals(4,calculator.getResult());
}
@Test
public void testSquareRoot() {
calculator.squareRoot(100);
assertEquals(10,calculator.getResult());
}
@Test
public void testReciprocal() {
calculator.reciprocal(5);
assertEquals(0,calculator.getResult());
}
@Test
public void testAbsolute() {
calculator.absolute(-7);
assertEquals(7, calculator.getResult());
}
}
运行结果如下:
将除法进行修改:
将减法的bug进行修改
public void substract(int n) {
result = result - 1; //Bug: 正确的应该是result =result-n。