JUnit4 中@AfterClass @BeforeClass @after @before的区别
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的方法执行。 |
@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的区别相关推荐
- JUnit4 中@AfterClass @BeforeClass @after @before的区别对比
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeCl ...
- Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解
在Junit4中还有的测试注解有: @BeforeClass ,@Before,@Test,@After,@AfterClass 1.其中:@BeforeClass,@AfterClass是Juni ...
- sql语句中left join和inner join中的on与where的区别分析
原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...
- 无法解析 list 中的方法 iterator_Python-list中的append()和extend()方法区别
一.append()和extend()方法都是用来添加数据到list末尾的,两者的区别: append()添加的时候会把添加的数据当成一个整体进行添加,允许添加任意类型的数据 extend()添加的时 ...
- Python中爬虫框架或模块的区别
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- PHP中file_exists与is_file,is_dir的区别介绍
PHP中file_exists与is_file,is_dir的区别介绍 作者: 字体:[增加 减小] 类型:转载 时间:2012-09-12 我要评论 很显然file_exists是受了asp的影响, ...
- python post与get的区别_python中get和post有什么区别
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...
- SQL语法中drop,delete与truncate的区别
SQL语法中drop,delete与truncate的区别 delete是DML语句,可以选择删除部分数据,也可以选择删除全部数据:删除的数据可以回滚:不会释放空间 drop是DDL语句,删除表结构和 ...
- mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣
mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...
最新文章
- 【js】实现分页查询操作的步骤
- 去云南品味彝族的砣砣肉
- 黑客攻击发现:多个银行类APP存漏洞
- Ios KVC KVO
- 微软Tech Summit 2017,等你来打Call
- 复习----使用链表实现队列(先进先出)及迭代
- python tensorflow教程_TensorFlow入门教程
- 【转载】徐国洪:好耶向移动广告技术产品转型
- 2009年Silverlight十大流行应用
- autocad哪个版本最好用_分享家用游戏用Win10哪个版本最好最稳定(个人见解篇)...
- web安全day10:通过实验理解windows域的OU和GPO
- eclipse注释中,文字大小不等的解决办法
- 深入解析Windows操作系统(笔记1)
- Thinkpad T61宽屏风扇拆缷与清理灰尘手记
- 让Microsoft Office2010 新建 Microsoft Office 97-2003 文档
- 《237 Gbit ps unrolled hardware polar decoder》237 Gbit / s展开的硬件极化解码器
- 网站漏洞安全渗透测试公司组建方案
- 电脑公司 GHOST XP SP3 特别版1308
- html5 audio音乐播放,循环播放等9款播放器
- 腾讯云服务器部署(保姆级)
热门文章
- Python MetaClass深入分析
- 节能与新能源汽车技术路线图2.0 pdf_《节能与新能源汽车技术路线图(2.0版)》正式发布...
- java spark dataset_Spark 2.0介绍:Dataset介绍和使用
- 《天天数学》连载29:一月二十九日
- 无心剑中译罗素《通往幸福之路》
- 向量积 和 它的计算_7
- 2.导数——线性代数回顾、曲线概念_1
- 1.极限——ε-δ例子_7
- string类比较大小_源码阅读String--JAVA成长之路
- 2017.9.21 problem a 失败总结