JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: 
@Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
@Test:测试方法,在这里可以测试期望异常和超时时间 
@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 
@Ignore:忽略的测试方法 
@BeforeClass:针对所有测试,只执行一次,且必须为static void 
@AfterClass:针对所有测试,只执行一次,且必须为static void 
一个JUnit4的单元测试用例执行顺序为: 
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 
每一个测试方法的调用顺序为:

@Before -> @Test -> @After;

public class JUnit4Test {@Beforepublic void before() {System.out.println("@Before");}@Test/**  *Mark your test cases with @Test annotations.   *You don’t need to prefix your test cases with “test”.  *tested class does not need to extend from “TestCase” class.  */public void test() {System.out.println("@Test");assertEquals(5 + 5, 10);}@Ignore@Testpublic void testIgnore() {System.out.println("@Ignore");}@Test(timeout = 50)public void testTimeout() {System.out.println("@Test(timeout = 50)");assertEquals(5 + 5, 10);}@Test(expected = ArithmeticException.class)public void testExpected() {System.out.println("@Test(expected = Exception.class)");throw new ArithmeticException();}@Afterpublic void after() {System.out.println("@After");}@BeforeClasspublic static void beforeClass() {System.out.println("@BeforeClass");};@AfterClasspublic static void afterClass() {System.out.println("@AfterClass");};
};

输出结果: 
@BeforeClass 
@Before 
@Test(timeout = 50) 
@After 
@Before 
@Test(expected = Exception.class) 
@After 
@Before 
@Test 
@After 
@AfterClass

@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同样是一个比较明智的选择。

转载于:https://my.oschina.net/xinall/blog/356311

JUnit4 中@AfterClass @BeforeClass @after @before的区别相关推荐

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

    JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation:  @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeCl ...

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

    在Junit4中还有的测试注解有:  @BeforeClass ,@Before,@Test,@After,@AfterClass 1.其中:@BeforeClass,@AfterClass是Juni ...

  3. sql语句中left join和inner join中的on与where的区别分析

    原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...

  4. 无法解析 list 中的方法 iterator_Python-list中的append()和extend()方法区别

    一.append()和extend()方法都是用来添加数据到list末尾的,两者的区别: append()添加的时候会把添加的数据当成一个整体进行添加,允许添加任意类型的数据 extend()添加的时 ...

  5. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  6. PHP中file_exists与is_file,is_dir的区别介绍

    PHP中file_exists与is_file,is_dir的区别介绍 作者: 字体:[增加 减小] 类型:转载 时间:2012-09-12 我要评论 很显然file_exists是受了asp的影响, ...

  7. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  8. SQL语法中drop,delete与truncate的区别

    SQL语法中drop,delete与truncate的区别 delete是DML语句,可以选择删除部分数据,也可以选择删除全部数据:删除的数据可以回滚:不会释放空间 drop是DDL语句,删除表结构和 ...

  9. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣

    mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...

最新文章

  1. 【js】实现分页查询操作的步骤
  2. 去云南品味彝族的砣砣肉
  3. 黑客攻击发现:多个银行类APP存漏洞
  4. Ios KVC KVO
  5. 微软Tech Summit 2017,等你来打Call
  6. 复习----使用链表实现队列(先进先出)及迭代
  7. python tensorflow教程_TensorFlow入门教程
  8. 【转载】徐国洪:好耶向移动广告技术产品转型
  9. 2009年Silverlight十大流行应用
  10. autocad哪个版本最好用_分享家用游戏用Win10哪个版本最好最稳定(个人见解篇)...
  11. web安全day10:通过实验理解windows域的OU和GPO
  12. eclipse注释中,文字大小不等的解决办法
  13. 深入解析Windows操作系统(笔记1)
  14. Thinkpad T61宽屏风扇拆缷与清理灰尘手记
  15. 让Microsoft Office2010 新建 Microsoft Office 97-2003 文档
  16. 《237 Gbit ps unrolled hardware polar decoder》237 Gbit / s展开的硬件极化解码器
  17. 网站漏洞安全渗透测试公司组建方案
  18. 电脑公司 GHOST XP SP3 特别版1308
  19. html5 audio音乐播放,循环播放等9款播放器
  20. 腾讯云服务器部署(保姆级)

热门文章

  1. Python MetaClass深入分析
  2. 节能与新能源汽车技术路线图2.0 pdf_《节能与新能源汽车技术路线图(2.0版)》正式发布...
  3. java spark dataset_Spark 2.0介绍:Dataset介绍和使用
  4. 《天天数学》连载29:一月二十九日
  5. 无心剑中译罗素《通往幸福之路》
  6. 向量积 和 它的计算_7
  7. 2.导数——线性代数回顾、曲线概念_1
  8. 1.极限——ε-δ例子_7
  9. string类比较大小_源码阅读String--JAVA成长之路
  10. 2017.9.21 problem a 失败总结