简述
- Eclipse使用的版本Eclipse Mars(4.5)
- JUnit是Java语言的单元测试框架
- junit3与junit4的区别
在junit3中,如果某个类是测试类,必须将其继承类TestCase,如果某个方法是测试方法,必须让这个方法以testXX开头,如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法的名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是tearDown。
在junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before来标识,释放资源的方法通过@After来标识,但是为了让junit4的测试类在junit3中也可以使用,习惯于把初始化方法命名为setUp,释放资源的方法命名为tearDown。Test中的测试方法一般以Test来开始。其中标识为Before注解的方法,每次运行测试类,都会执行标识为@After与@Before的方法。
4.在junit4中提供了一个Assert的类,这个类中有大量的静态方法进行断言的处理,在junit3中由于继承了TestCase,这个TestCase就可以直接assert,而junit4中需要先引入Assert类。
具体操作
1.在Eclipse中新建一个工程TestUnit,如图
2.编写一个测试类Number.java
package test;
public class Number {
public int add(int a,int b){
return a+b;
}
public int min(int a,int b){
if(a>b){
return a-b;
}
return b-a;
}
}
3.选中类Number.java,右键New,选择JUnit Test Case,如图
4.在打开的New JUnit Test Case对话框中,按照如下图所示的方式选择配置,基本保持默认配置,如图
5.Next,选择要测试的方法,这里全选,如图
6.Finish,弹出添加JUnit4 Library的对话框,OK。
7.之后生成NumberTest.java,如图
NumberTest.java
package test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class NumberTest {
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAdd() {
fail("Not yet implemented");
}
@Test
public void testMin() {
fail("Not yet implemented");
}
}
以上是默认生成的测试框架,接下来我们就要给测试方法添加代码了。
8.更改代码如下
package test;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class NumberTest {
private Number num;
@Before
public void setUp() throws Exception {
num=new Number();
}
@After
public void tearDown() throws Exception {
}
@Test
public void testAdd() {
int res=num.add(2, 3);
assertEquals(5, res);
}
@Test
public void testMin() {
int res=num.min(8, 3);
assertEquals(5, res);
}
}
9.选中NumberTest.java,右键,Run As–>JUnit Test,得到测试结果,当前结果表示测试通过。如图