您的位置:首页 > 其它

JUnit自动化单元测试(三):各常用注解和测试函数详细讲解

2017-05-22 14:04 519 查看
@Test:将一个方法修饰成一个可测试的方法;只有@Test修饰之后,这个方法才会被JUnit执行。

@Test(expected=XXException.class):表示这个方法一定会抛出某个异常;如果没有抛出该异常则测试失败。

//测试代码
@Test(expected = ArithmeticException.class)
public void testDiv() {
int result = calcuate.div(6, 0); // 除法中,除数为0,抛出ArithmeticException
}


@Test((timeout=XX):表示这个方法执行的超时时间,单位毫秒;如果这个方法在规定时内还没结果,则测试失败。

//测试代码
@Test(timeout = 3000)
public void testTimeout () {
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}


@Before:会在每一个测试方法被运行前执行一次;一般用于初始化测试数据。注意:有多少个@Test修饰的方法就会执行多少次。

@After:会在每一个测试方法运行后被执行一次;一般用于注销测试数据。注意:有多少个@Test修饰的方法就会执行多少次。

@BeforeClass:它会在所有的方法运行前执行,static修饰;一般用于测试需要读取文件数据时。注意:不管有多少个@Test修饰的方法只执行一次。

@AfterClass:它会在所有的方法运行结束后执行,static修饰;一般用于断开文件连接。注意:不管有多少个@Test修饰的方法只执行一次。

@Ignore:所修饰的测试方法会被测试运行器忽略;当方法还没写完时可用,写好之后删掉@Ignore即可开始测试。

//测试代码
@Ignore
@Test
public void testIgnore () {
System.out.println("我会被忽略,不会执行");
}


@RunWith:可以更改测试运行器 org.junit.runner.Runner;当需要多个或自定义的运行器时用,下一篇具体讲解。

注解大致是就这么多,此外还有一些常用的断言函数:

AssertEquals:断言两个结果相等;

AssertArrayEquals:断言两个数组相等;

AssertNotEquals:断言两个结果不相等;

AssertSame:判断两个对象是否为同一个,不同于equals这里是使用“==”判断;

AssertTrue:断言结果为真;

AssertFalse:断言结果为假;

AssertNull:断言结果为空;

AssertNotNull:断言结果不为空;

AssertThat:使用Matcher做自定义的校验;

如果想了解更多的测试函数,请自行查阅Assert API,这里就不详细说明了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息