JUnit——Annotation
Annotation是对属性,方法或者类做一个标记 比如@override表示复写了父类中的方法
【1】@Test: 测试方法(说明该方法为测试方法)
a)(expected=XXException.class)
b)(timeout=xxx)
@Test(expected=java.lang.ArithmeticException.class,timeout=100)
//期待抛出算术异常,并且运行时间限制在100ms以内(通常在测试代码运行效率时这样设置)
public void testDivide(){
int z = new T().divide(8,0);
//assertThat(z,is(4));
}
【2】@Ignore: 被忽略的测试方法
有时候某些方法还不具备测试的条件,暂时还不能测试或者某些方法已经不需要再做测试了,这就可以进行忽略的操作了。
有时方法的测试条件还没满足,整个项目还差一个模块,则可以采用该方法假定测试条件成立。
int z = new T().divide(8,0);
//assertThat(z,is(4));
}
【2】@Ignore: 被忽略的测试方法
有时候某些方法还不具备测试的条件,暂时还不能测试或者某些方法已经不需要再做测试了,这就可以进行忽略的操作了。
有时方法的测试条件还没满足,整个项目还差一个模块,则可以采用该方法假定测试条件成立。
【3】@Before: 每一个测试方法(@Test方法)之前运行
4.@After: 每一个测试方法之后运行
应用场合:
有些方法需要执行的时候需要一些先决条件,比如打开某文件,执行完之后需要关闭文件,这就需要before和after操作。
5.@BeforeClass: 所有测试开始之前运行
6.@AfterClass: 所有测试结束之后运行
@BeforeClass
public static void BeforeClass(){
System.out.println("beforeclass");
}
@AfterClass
public static void AfterClass(){
System.out.println("afterclass");
}
如果方法不声明为static,则运行后会报错,如下:
java.lang.Exception: Method BeforeClass() should be static
注意:这里方法一定是static,原因在于调用该方法的时候是在所有的类未进行初始化之前进行的,因此只能是静态的。
应用场合:
用在一些当我们在测试之前需要取得一些很耗费时间的资源的时候,或者是需要搭载一些比较耗费时间的配置环境(建立与数据库的连接,搭建数据库连接池;搭建spring环境)的时候,用BeforeClass。需要把资源释放掉或环境卸载掉时,用AfterClass。
Beforeclass与before不同,一个是全局,一个是局部,比如与数据库的链接,肯定是在全局操作之前搭建好,不能执行每个方法的时候都搭建一次,这样的话效率就太低了。