zoukankan      html  css  js  c++  java
  • Java:JUnit4使用详解

    对于Junit的总是一知半解不太懂,现在认真梳理一下;   

    此次针对的是Junit4版本,注解也是在Junit4版本才有的,之前的版本并无注解功能。而注解开发基本上被认为是一种优秀的设计,所以我们写单元测试用例时,尽可能地去了解并使用注解。

         @Test:使用该注解的方法为测试方法,自动运行时能够识别并被执行

          包含两个参数:expected=XXXException.class 期望出现的异常

                                   timeout=xxx 设定程序运行的超时时间

         @Ignore:被忽略的测试方法

         @Before:在每个测试方法之前运行

         @After: 在每个测试方法之后运行

         @BeforeClass:在所有测试开始之前运行

         @AfterClass:在所有测试开始之后运行 

         注意:

         (1) @Before与@BeforeClass的区别

         @Before会加在每个方法前执行,即有几个@Test就会执行几遍。

         @BeforeClass 只在所有测试之前执行,只会执行一次。并且@BeforeClass修饰的方法必须是公有的静态方法(public static )。

         @After和@AfterClass也类似

         (2)每个测试类中这四个注解不能重复使用,一个方法只能从这四个注解中挑选其中一个。

      重点:

       (3)如果不希望某个方法执行: 

    @Ignore() 可以标注不参与测试的测试方法。当然也可以通过去除注解 

    @Test 来达到这个目的,但去除注解 

    @Test 会令到eclipse的JUnit View中无法显示该测试方法。

    比如:

    package gc;
    
    import static org.junit.Assert.*;
    
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Ignore;
    import org.junit.Test;
    
    public class JUnit4Test {
    @Before
    public void before() {
      System.out.println("@Before");
    }
    @Test
    public void test() {
      System.out.println("@Test");
      assertEquals(5 + 5, 10);
    }
     
    @Ignore
    @Test
    public void testIgnore() {
      System.out.println("@Ignore");
    }
     
    @Test(timeout = 50)
    public void testTimeout() {
      System.out.println("@Test(timeout = 50)");
      assertEquals(5 + 5, 10);
    }
     
    @Test(expected = ArithmeticException.class)
    public void testExpected() {
      System.out.println("@Test(expected = Exception.class)");
      throw new ArithmeticException();
    }
     
    @After
    public void after() {
       System.out.println("@After");
      }
      
      @BeforeClass
      public static void beforeClass() {
       System.out.println("@BeforeClass");
      };
      
      @AfterClass
      public static void afterClass() {
       System.out.println("@AfterClass");
      };
    };
    

      结果为:

    @BeforeClass
    @Before
    @Test(timeout = 50)
    @After
    @Before
    @Test(expected = Exception.class)
    @After
    @Before
    @Test
    @After
    @AfterClass
    

      

  • 相关阅读:
    react-redux-reducer
    react-redux-action
    node-express-2-jade
    node-express-1
    vuex-Module
    vuex-Action(异步)
    vuex-Mutation(同步)
    vuex-getter
    vuex-state
    ##DAY7 UINavigationController
  • 原文地址:https://www.cnblogs.com/aspirant/p/6789656.html
Copyright © 2011-2022 走看看