junit和testng对BeforeClass和AfterClass注解的不同要求

如果某一个方法在单元测试中被beforeclass和afterclass标注,那么,如果该单元测试是给予junit框架的,那么两个方法必须声明为静态的方法,否则编译失败。但是如果是给予testng单元测试框架时,没有该限制。具体的实验可以参考下面的代码。

单例模式的实现类

package pattern.design;public class Singleton {//定义私有的构造函数private Singleton(){}//定义一个私有的静态化的Singleton实例private static Singleton singleton=null;//定义一个公有化的getInstance方法public static Singleton getInstance(){if(null==singleton){singleton=new Singleton();}return singleton;}/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//验证收否只生产了一个实例Singleton single1=Singleton.getInstance();Singleton single2=Singleton.getInstance();System.out.println(single1==single2);}}

给予junit的单例模式的测试代码

package pattern.design;import junit.framework.Assert;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class TestSingleton {@BeforeClasspublic static void beforeClass() {System.out.println("beforeClass is executed");}@SuppressWarnings("deprecation")@Testpublic void testSingleton() {System.out.println("testSingleton is executed");Assert.assertEquals(Singleton.getInstance(), Singleton.getInstance());Assert.assertEquals("Assert Object is equals", Singleton.getInstance(), Singleton.getInstance());}@AfterClasspublic static void afterClass() {System.out.println("afterClass is executed");}}

版权声明:本文为博主原创文章,未经博主允许不得转载。

,使用双手头脑与心灵的是艺术家,只有合作双手

junit和testng对BeforeClass和AfterClass注解的不同要求

相关文章:

你感兴趣的文章:

标签云: