Java中單元測試中:@BeforeClass,@Before,@Test,@After,@AfterClass中的問題詳解

來源:互聯網
上載者:User

標籤:

在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;

/**

 * author    : toto [email protected] 

 * CFMS    :Computer files management system  

 * version  :1.0 2013-2-19 下午01:26:04

 * 

 * 此類用於測試單元測試中的幾個方法

 */

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()

   

Java中單元測試中:@BeforeClass,@Before,@Test,@After,@AfterClass中的問題詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.