使用exlipse的junit工具做单元测试
第一步:
准备:在exlipse中新建web项目
在web项目中新建一个需要测试的类,如下:
import java.math.BigDecimal;
/**
*
* @ClassName: ArithUtil
* @Description: 运算工具类
* @author admin
* @date Aug 23, 2016
*
*/
public class ArithUtil {
private static final int DEF_DIV_SCALE = 10;
/**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public double add(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public double sub(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public double mul(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return round(b1.multiply(b2).doubleValue(),2);
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public double div(double v1,double v2){
return div(v1,v2,DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public double div(double v1,double v2,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public double round(double v,int scale){
if(scale<0){
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
第二步 在web项目中引进Junit库,如下图
第三步 新建Junit Test Case
第四步 修改测试逻辑,完成基本测试
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
public class ArithUtilTest {
private ArithUtil arithUtil = new ArithUtil();
@Before
public void instance(){
arithUtil = new ArithUtil();
}
@Test
public void testAdd() {
double result = arithUtil.add(1, 3);
assertEquals(4, result,0);
}
@Test
public void testSub() {
double result = arithUtil.sub(8.78, 6.7865);
assertEquals(1.9935, result,0);
}
@Test
public void testMul() {
double result = arithUtil.mul(3.45, 9.82);
assertEquals(33.88, result,0);
}
@Test
public void testDivDoubleDouble() {
double result = arithUtil.div(10, 3);
assertEquals(3.3333333333, result,0);
}
@Test
public void testDivDoubleDoubleInt() {
double result = 0;
try {
result = arithUtil.div(10, 0, 2);
} catch (Exception e) {
fail("exception");
}
assertEquals(3.33, result,0);
}
@Test
public void testRound() {
double result = arithUtil.round(3.14159, 2);
assertEquals(3.14, result,0);
}
}
第5步 运行junit
Run As -> JUnit Test
运行结果分析