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

来源:互联网 发布:声音可爱的网络歌手 编辑:程序博客网 时间:2024/06/15 14:23
在Junit4中还有的测试注解有:  @BeforeClass ,@Before,@Test,@After,@AfterClass

1、其中:@BeforeClass,@AfterClass是Junit4中新添加进去的

2、如果Run as --->Junit Test,运行含有@Test注释的方法是,那么所有注解方法都将被执行,所含的执行顺序是:

     @BeforeClass ,@Before,@Test,@After,@AfterClass

3、在JUnit4中,如果测试类继承了TestCase类,那么所有的Annotation都不会起作用。

4、案例:

package cn.edu.hactcm.testjunit;import java.util.UUID;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;/*** 此类用于测试单元测试中的几个方法 */public class TestJunit { private String flag; /**  * 在本类加载前执行,注意的是有关键字:static  */ @BeforeClass public static void testBeforeClass() {  System.out.println("public static void testBeforeClass()"); } /**  * 在执行目标测试方法testTest()前执行  */ @Before  public void testBefore() {  System.out.println("-------------------------------------");  System.out.println("public void testBefore()");  flag = UUID.randomUUID().toString();  System.out.println("-------------------------------------"); }   /**  * 目标测试方法testTest()  */ @Test public void testTest() {  System.out.println("public void testTest()");  System.out.println(flag);  flag = null; }  /**  * 目标测试方法testTest2()  */ @Test public void testTest2() {  System.out.println("public void testTest2()");  System.out.println(flag);  flag = null; } /**  * 在执行目标测试方法testTest()执行  */ @After  public void testAfter() {   System.out.println("-------------------------------------");  System.out.println("public void testAfter()");  System.out.println(flag);  System.out.println("-------------------------------------"); }  /**  * 在本类加载后执行,注意的是有关键字:static  */ @AfterClass public static void testAfterClass() {  System.out.println("public static void testAfterClass()"); }www.2cto.com}


只执行testTest()方法后的结果为:

public static void testBeforeClass()

-------------------------------------

public void testBefore()

-------------------------------------

public void testTest()

993ea4ea-3626-4caa-9976-07203a8b7475

-------------------------------------

public void testAfter()

null

-------------------------------------

public static void testAfterClass()

阅读全文
0 0
原创粉丝点击