码迷,mamicode.com
首页 > 其他好文 > 详细

解释JUnit中@BeforeClass和@AfterClass标注的方法必须是static的,而在TestNg不必

时间:2015-02-08 16:51:38      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

在JUnit中@BeforeClass和@AfterClass标注的方法必须是static的;但是在TestNg中却没有这样的限制,这是为什么呢。

其实和他们两的运行机制有关。

 

在junit中:

每运行一个@Test方法,就会为该测试类新建一个新的实例。(所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢。)

有没有发现这有助于提高测试方法之间的独立性,因为每个@Test执行的时候,都新建了一个实例,这样的话,可以避免测试方法之间重用各个@Test方法里面的变量值。

举例:

 技术分享

测试结果:

 技术分享

 

而在TestNg中,@BeforeClass和@AfterClass方法就没严格要求要是static。

因为运行testNg的时候,对一个类只会实例化一次。

举例:

技术分享

结果:

技术分享

 

解释JUnit中@BeforeClass和@AfterClass标注的方法必须是static的,而在TestNg不必

标签:

原文地址:http://www.cnblogs.com/weiweiyao/p/4280129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!