junit学习笔记(一):JUnit的安装和测试原则 (二)

2014-11-24 00:56:20 · 作者: · 浏览: 8
edException{
Thread.sleep(209);
int rel = cal.divide(12, 2);
}

@Test
public void testMulti(){
int res = cal.multi(12, 2);
assertEquals("乘法有问题",24,res);
}
//hamcrest 1.3
}

4、Junit3和Junit4两者之间的区别是非常明显的
在Junit3,中如果某个类需要是测试类,必须将其继承于TestCase,如果某个方法需要是测试方法,必须让这个方法通过testXXX开头,在Junit3中如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是tearDown
在Junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before,释放资源的方法通过@After来标注。但是为了让junit4中的测试类在junit3中也可以使用,习惯于把初始化方法命名为setUp,释放资源的方法命名为tearDown,测试方法也同样以test开头


5、如何使用断言
在junit4中提供了一个Assert的类,这个类中有大量的方法进行断言的处理,在junit3中由于继承了TestCase,这个TestCase中提供了大量的Assert方法。 在junit4中,为了与junit3兼容,可以静态导入包Assert,即import static org.junit.Assert.*; 这样的话使用Assert中的所有静态方法就不用再添加类名了,可以有效地兼容junit3


6、expected参数,测试异常对象: @Test(expected=ArithmeticException.class),表示检查是否抛出ArithmeticException
[java] // 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错
@Test(expected=ArithmeticException. class)
public void testDivide(){
int res = cal.divide(12, 2);
assertEquals( "除法有问题", 6, res);

// 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错
@Test(expected=ArithmeticException. class)
public void testDivide(){
int res = cal.divide(12, 2);
assertEquals( "除法有问题", 6, res);
}


7、timeout参数,性能测试:@Test(timeout=190),表示要在190ms内完成
[java] // 时间单位为ms
@Test(timeout=190)
public void testTime() throws InterruptedException{
Thread. sleep(189);
int rel = cal.divide(12, 2);

// 时间单位为ms
@Test(timeout=190)
public void testTime() throws InterruptedException{
Thread. sleep(189);
int rel = cal.divide(12, 2);
}