【笔记】JunitTest的@Test注解的两个参数

时间:2022-12-31 05:05:27

博客中的部分字句引自慕课网的《JUnit-Java单元测试必备工具》公开课程。


@Test:将一个普通的方法修饰成为一个测试方法

@Test
public void testDivide() {
assertEquals(3, new Calculate().divide(6, 2));
}
上段代码通过@Test注释将testDivide方法修饰成为一个测试方法。

其中 Calculate类中的divide方法实现了两个参数相除的功能。具体实现代码略。

对上段代码执行JunitTest运行,结果如下:

【笔记】JunitTest的@Test注解的两个参数






@Test注解有两个参数,分别是“expected=XX.class”以及"timeout=毫秒"。

expected说明期望,如下代码:

@Test(expected=ArithmeticException.class)
public void testDivide2() {
assertEquals(3, new Calculate().divide(6, 0));
}
如果没加expected,会测试失败,因为0不能被当做除数。

但是加了expected,即表明出现该Exception的情况是正常的,测试通过。结果如下图

【笔记】JunitTest的@Test注解的两个参数






timeout参数说明延时,如下代码:

@Test(timeout=3000)
public void testReadFile() {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
这里我们测试读取文件时间,当然没有真正读文件,而是通过让系统sleep来达到时间控制的目的。

执行上述代码,会超出我们设定的timeout,就会发生如下图错误:

【笔记】JunitTest的@Test注解的两个参数







如果将Thread.sleep(5000)中的参数改成3000一下,则测试顺利通过。


以上是@Test的两个参数的使用方法。