JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

转载 2013年12月02日 11:50:34
@BeforeClass and @AfterClass @Before and @After
在一个类中只可以出现一次

在一个类中可以出现多次,即可以在多个方法的声明前加上这两个Annotaion标签,执行顺序不确定

方法名不做限制 方法名不做限制
在类中只运行一次 在每个测试方法之前或者之后都会运行一次

@BeforeClass父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。
@AfterClass 父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行

@Before父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。
 @After父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行
必须声明为public static 必须声明为public 并且非static
所有标识为@AfterClass的方法都一定会被执行,即使在标识为@BeforeClass的方法抛出异常的的情况下也一样会。 所有标识为@After 的方法都一定会被执行,即使在标识为 @Before 或者 @Test 的方法抛出异常的的情况下也一样会。

 

@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后 都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。

 

 

注:

junit4和junit3有一定的区别,在junit3中,测试方法必须以test开始,即方法为testXXX(),在junit4中没有这个 限制。因为在junit4中可以利用注解(annotation)@Test来指定测试方法。但是,在junit4中不用继承TestCase父类,如果 使用继承,则junit4的注解将会失效。 junit4不继承TestCase,自然不能直接使用assertEqual等方法,如果要使用断言必须直接静态引用,即 Assert.assertEqual(int ,int  ) 这种方式。


相关文章推荐

JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

@BeforeClass and @AfterClass @Before and @After 在一个类中只可以出现一次在一个类中可以出现多次,即可以在多个方法的声明前加上这两个Annotaion标签...

Junit4的使用(@Test @Before @After @BeforeClass @AfterClass @Ignore)

@BeforeClass:类前执行,针对所有测试,只执行一次,且必须为static void。 @Before:方法前执行,多个Test方法时执行多次。非静态。 @Test:测试方法,在这...

关于 junit4 中的 @Before @After @BeforeClass @AfterClass @Ignore 和 timeout expected 的使用

学习了junit4 测试框架后,领略了这个优秀框架的短小精悍,并对@Before @After @BeforeClass @AfterClass  @Ignore 和 timeout  expecte...

JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@AfterClass、@Ignore

JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍: @BeforeClass:针对所有测试,只执行一次,且必须为static void...
  • xwfaoi
  • xwfaoi
  • 2011年08月26日 14:16
  • 2910

Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass

Junit中集中基本注解,是必须掌握的。 @BeforeClass– 表示在类中的任意public static void方法执行之前执行 @AfterClass – 表示在类中的任意public s...

Java单元测试中@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解

Java单元测试:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解 在Junit4中还有的测试注解有:  @BeforeClass ...

Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法2 - SingleLaunchActivityTestCase

在上一遍笔记 SingleLaunchActivityTestCase extends InstrumentationTestCase java.lang.Object    ...

Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法1 - 条件判断法

Robotium的测试类ActivityInstrumentationTestCase2继承了TestCase类,即robotiom的测试类是junit3的实例,并没有junit4的特征...

Hibernate下搭建JUNIT的测试环境,使用beforeclass和afterclass实现sessionFactory建立一次

sessionFactory建立一次除了beforeclass和afterclass,还有单例,static语句块两种方法 实体类: package com.zzk.hibernate.m...

【JUnit】[bug] BeforeClass 和 AfterClass 不执行

学习 hibernate 的时候用 Junit 测试写好的增删改查方法,希望用 BeforeClass 和 AfterClass 来先一步初始化 Configuration 和 SessionFact...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
举报原因:
原因补充:

(最多只允许输入30个字)