1、导入junit的jar,不建议直接使用eclipse中所提供的包
2、在src目录下编写服务代码
3、创建测试类
基本原则:1、在eclipse中创建一个source folder命名为test
2、创建一个测试类所在的包,包的名称和要测试的类一致
4、Junit3和Junit4两者之间的区别是非常明显的
在Junit3中,如果某个类需要是测试类,必须将其继承于TestCase,如果某个方法需要是测试方法,必须让这个方法通过testXX开头,在junit3中,如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法的名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是tearDown
在Junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before,释放资源的方法通过@After来标注。但是为了让junit4中的测试类在Junit3中也可以使用,习惯于把初始化方法命名为setUp,释放资源的方法命名为tearDown,测试方法也同样以test开头
5、如何使用断言
在junit4中提供了一个Assert的类,这个类中有大量的方法进行断言的处理,在junit3中由于继承了TestCase,这个TestCase中提供了大量的assert的方法
// 加了@Test表示该方法是一个单元测试方法
@Test
public void testAdd() {
int rel = cal.add(11, 13);
/*
* 以下就是一个简答的断言的编写
* 第一个参数:如果出错给出的提示信息
* 第二个参数:方法执行后预期的一个结果
* 第三个参数:表示实际值
*/
Assert.assertEquals("加法存在问题,结果不相等", rel, 24);
}
// 加了@Test表示该方法是一个单元测试方法
@Test
public void testAdd() {
int rel = cal.add(11, 13);
/*
* 以下就是一个简答的断言的编写
* 第一个参数:如果出错给出的提示信息
* 第二个参数:方法执行后预期的一个结果
* 第三个参数:表示实际值
*/
/*
* 当进行了静态导入之后
* import static org.junit.Assert.*;
* Assert中的所有静态方法就不用再添加类名来调用
* 这样可以有效的兼容junit3
* */
assertEquals("加法存在问题,结果不相等", rel, 24);
}
// 加了@Test表示该方法是一个单元测试方法
@Test
public void testAdd() {
int rel = cal.add(11, 13);
/*
* 以下就是一个简答的断言的编写
* 第一个参数:如果出错给出的提示信息
* 第二个参数:方法执行后预期的一个结果
* 第三个参数:表示实际值
*/
/*
* 当进行了静态导入之后
* import static org.junit.Assert.*;
* Assert中的所有静态方法就不用再添加类名来调用
* 这样可以有效的兼容junit3
* */
assertEquals("加法存在问题,结果不相等", rel, 24);
}
6、测试异常对象
/**
* 异常抛出测试,表示这个方法不抛出异常就报错
*/
@Test(expected = ArithmeticException.class)
public void testDivideException() {
cal.divide(20, 0);
}
7、timeout参数7、timeout参数
/**
* 性能测试,表示这个方法应该在300毫秒内执行结束才能正常
*/
@Test(timeout = 300)
public void testTimeOut() {
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}