JUnit单元测试(三)--JUnit实例与代码 (一)

2014-11-24 11:49:46 · 作者: · 浏览: 19

JUnit单元测试(三)--JUnit实例与代码

我们以一个简单的+-x÷计算为例,使用JUnit做一个简单的单元测试实例

我们实现一个简单的计算

注:目标类和测试类要放在同一包下, 这是JUnit单元测试基础要点

首先创建一个目标类(被测试对象):命名为Calculator.java

[java]
package com.junit3_8;

public class Calculator {
//加
public int add(int a, int b)
{
return a + b ;
}
//减
public int subtract(int a, int b)
{
return a - b ;
}
//乘
public int multiply(int a, int b)
{
return a * b ;
}
//除
public int divide(int a, int b)throws Exception
{
if (0 == b)
{
throw new Exception("除数不能为0");
}
return a / b ;
}

}

package com.junit3_8;

public class Calculator {
//加
public int add(int a, int b)
{
return a + b ;
}
//减
public int subtract(int a, int b)
{
return a - b ;
}
//乘
public int multiply(int a, int b)
{
return a * b ;
}
//除
public int divide(int a, int b)throws Exception
{
if (0 == b)
{
throw new Exception("除数不能为0");
}
return a / b ;
}

}

目标类已经创建好了,现在对其编写测试类:命名为CalculatorTest.java,将其放在与目标类同一目录路径下。

[java]
package com.junit3_8;

import junit.framework.Assert;
import junit.framework.TestCase;

//测试类要继承TestCase
public class CalculatorTest extends TestCase{

Calculator cal;

//在“每个”测试方法执行之前被调用
public void setUp()
{
//这段代码在这写比较方便,只写一次就够,
//不用在每个方法里写,因为这个方法每次都被调用,生成不同的对象,供测试方法使用
cal = new Calculator();
//System.out.println("setUp");
}

//在“每个”测试方法执行之后被调用
public void tearDown()
{
//System.out.println("testDown");
}

//测试方法:方法名要以test为开头,无参数,无返回类型
public void testAdd()
{
//Calculator cal = new Calculator();
int result = cal.add(1, 2);
//第一个参数是预期结果,第二个参数是实际结果
Assert.assertEquals(3, result);

}

public void testSubtract()
{
//Calculator cal = new Calculator();
int result = cal.subtract(1, 2);
//第一个参数是预期结果,第二个参数是实际结果
Assert.assertEquals(-1, result);

}

public void testMultiply()
{
//Calculator cal = new Calculator();
int result = cal.multiply(1, 2);
//第一个参数是预期结果,第二个参数是实际结果
Assert.assertEquals(2, result);

}

public void testDivide()
{
int result = 0;
//Calculator cal = new Calculator();
try
{
result = cal.divide(4, 2);

}
catch(Exception e)
{
e.printStackTrace();
//让测试失败
Assert.fail();
}
//第一个参数是预期结果,第二个参数是实际结果
Assert.assertEquals(2, result);

}

//除数为0的情况
public void testDivideByZero()
{
Throwable th = null ;

//Calculator cal = new Calculator();
try
{
cal.divide(1, 0);
Assert.fail();
}
catch(Exception e)
{