博客中的部分字句引自慕课网的《JUnit-Java单元测试必备工具》公开课程。
@Test:将一个普通的方法修饰成为一个测试方法
@Test上段代码通过@Test注释将testDivide方法修饰成为一个测试方法。
public void testDivide() {
assertEquals(3, new Calculate().divide(6, 2));
}
其中 Calculate类中的divide方法实现了两个参数相除的功能。具体实现代码略。
对上段代码执行JunitTest运行,结果如下:
@Test注解有两个参数,分别是“expected=XX.class”以及"timeout=毫秒"。
expected说明期望,如下代码:
@Test(expected=ArithmeticException.class)如果没加expected,会测试失败,因为0不能被当做除数。
public void testDivide2() {
assertEquals(3, new Calculate().divide(6, 0));
}
但是加了expected,即表明出现该Exception的情况是正常的,测试通过。结果如下图
timeout参数说明延时,如下代码:
@Test(timeout=3000)这里我们测试读取文件时间,当然没有真正读文件,而是通过让系统sleep来达到时间控制的目的。
public void testReadFile() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
执行上述代码,会超出我们设定的timeout,就会发生如下图错误:
如果将Thread.sleep(5000)中的参数改成3000一下,则测试顺利通过。
以上是@Test的两个参数的使用方法。