您的位置:首页 > 编程语言 > Java开发

Java笔记18:JUnit单元测试

2016-01-27 15:52 120 查看

1 从http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22junit%22%20AND%20a%3A%22junit%22
上下载最新的junit包。

2 建立名为JunitTest的Java Project,把下载的junit-4.12.jar添加到工程中



3 建立com.abc的package,在该package下建立Calculator.java,用来实现加减乘除运算。
package com.abc;

publicclass Calculator {

publicint add(inta,intb) {
returna +b;
}

publicint minus(inta,intb) {
returna - 1;  //故意写错,方便测试
}

publicint divide(inta,intb) {
returna /b;
}

publicint mul(inta,intb) {
returna *b;
}
}




4 创建测试类

(1)右键点击要测试的类Calculator.java,“New”,“JUnit Test
Case”



(2)这里有四个方法可选:setUpBeforeClass()和setUp()是用于测试之前的准备工作,区别在于setUpBeforeClass()是针对整个类的,只执行一次,setUp()是针对方法的,每个测试方法被执行之前都会先执行setUp();tearDownAfterClass()和tearDown()是用于测试之后释放资源的,区别在于tearDownAfterClass()是针对整个类的,只执行一次,tearDown()是针对方法的,每个测试方法被执行后都会执行tearDown()。

这里勾选setUpBeforClass()。



(3)这里可以选择要测试的方法。把四个运算方法都选上。



(4)点击finish后生成的代码如下图所示



(5)编写测试类代码
package com.abc;

importstatic org.junit.Assert.*;

importorg.junit.Before;
importorg.junit.Test;

publicclass CalculatorTest {
Calculatorcal;

@Before
publicvoid setUp()throws Exception{
cal =newCalculator();
}

@Test
publicvoid testAdd() {
intres =cal.add(20, 10);
assertEquals("加法错误",res, 30);
}

@Test
publicvoid testMinus() {
intres =cal.minus(20, 10);
assertEquals("减法错误",res, 10);
}

@Test
publicvoid testDivide() {
intres =cal.divide(20, 10);
assertEquals("除法错误",res, 2);
res =cal.divide(20, 0);
}

@Test
publicvoid testMul() {
intres =cal.mul(20, 10);
assertEquals("乘法错误",res, 200);
}

}


5 开始测试

右键点击Calculator,“Run As”,“JUnitTest”,报initializationError的错误


这个错误是因为少了junit-4.12.jar的两个依赖包:hamcrest-core-1.3.rc2.jar和hamcrest-library-1.3.rc2.jar。

从网络上下载这两个包并添加到工程中:



重新进行单元测试,结果如下:



上述结果显示了两个方法是正确的,一个方法是计算结果错误,另一个方法是编译错误。

点击testMinus,可以查看错误信息为计算结果应该为10却计算成了19。


点击testDivide,可以看到错误信息为除数不能为0。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: