zoukankan      html  css  js  c++  java
  • Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解

    在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 11111111@qq.com 

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

     
     
     
  • 相关阅读:
    利用 Makefile 写的小程序
    linux内核学习之进程管理------task_struct结构体
    智能指针
    explicit 关键字
    ant脚本编写
    FROM_UNIXTIME 格式化MYSQL时间戳函数
    Dubbo架构设计详解-转
    Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)转
    SiteMesh详解
    sitemesh使用步骤
  • 原文地址:https://www.cnblogs.com/jianmang/p/4528920.html
Copyright © 2011-2022 走看看