zoukankan      html  css  js  c++  java
  • JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@AfterClass、@Ignore

    JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍:

    @BeforeClass:针对所有测试,只执行一次,且必须为static void

    @Before:初始化方法

    @Test:测试方法,在这里可以测试期望异常和超时时间

    @After:释放资源

    @AfterClass:针对所有测试,只执行一次,且必须为static void

    @Ignore:忽略的测试方法

    一个单元测试用例执行顺序为:

    @BeforeClass –> @Before –> @Test –> @After –> @AfterClass

    每一个测试方法的调用顺序为:

    @Before –> @Test –> @After

    以下是测试执行顺序代码:

    1. public class CalculatorTest {  
    2.   
    3.     private static Calculator calculator = new Calculator();  
    4.   
    5.     @BeforeClass  
    6.     public static void beforeClass1(){  
    7.         System.out.println("@beforeClass1");  
    8.     }  
    9.     @BeforeClass  
    10.     public static void beforeClass2(){  
    11.         System.out.println("@beforeClass2");  
    12.     }  
    13.       
    14.     @Before  
    15.     public void before1() throws Exception {  
    16.         System.out.println("@before1");  
    17.     }  
    18.       
    19.     @Before  
    20.     public void before2() throws Exception {  
    21.         System.out.println("@before2");  
    22.     }  
    23.   
    24.     @Test  
    25.     public void testAdd() {  
    26.         System.out.println(1);  
    27.     }  
    28.   
    29.     @Test  
    30.     public void testSubstract() {  
    31.         System.out.println(2);  
    32.     }  
    33.   
    34.     @Ignore("Multiply() Not yet implemented")  
    35.     @Test  
    36.     public void testMultiply() {  
    37.         System.out.println(3);  
    38.         fail("Not yet implemented");  
    39.     }  
    40.   
    41.     @Test  
    42.     public void testDivide() {  
    43.         System.out.println(4);  
    44.     }  
    45.   
    46.     @Test(timeout = 1000)  
    47.     public void testSquareRoot() {  
    48.         System.out.println(5);  
    49.     }  
    50.   
    51.     @Test  
    52.     //@Test(expected = ArithmeticException.class)  
    53.     public void divideByZero() {  
    54.         System.out.println(6);  
    55.     }  
    56.       
    57.     @After  
    58.     public void after1(){  
    59.         System.out.println("@after1");  
    60.     }  
    61.     @After  
    62.     public void after2(){  
    63.         System.out.println("@after2");  
    64.     }  
    65.     @AfterClass  
    66.     public static void afterClass1(){  
    67.         System.out.println("@afterClass1");  
    68.     }  
    69.     @AfterClass  
    70.     public static void afterClass2(){  
    71.         System.out.println("@afterClass2");  
    72.     }  
    73. }  

    执行结果: @beforeClass2
    @beforeClass1
    @before2
    @before1
    1
    @after1
    @after2
    @before2
    @before1
    2
    @after1
    @after2
    @before2
    @before1
    4
    @after1
    @after2
    @before2
    @before1
    5
    @after1
    @after2
    @before2
    @before1
    6
    @after1
    @after2
    @afterClass1
    @afterClass2
  • 相关阅读:
    深入理解泛型之JAVA泛型的继承和实现、泛型擦除
    hadoop过程中遇到的错误与解决方法
    微服务拆分到什么粒度合适——康威定律
    墨菲定律(设计系统)和康威定律(系统划分)
    Hadoop-Impala学习笔记之SQL参考
    Hadoop-Impala学习笔记之管理
    Hadoop2-HDFS学习笔记之入门(不含YARN及MR的调度功能)
    Hadoop-Impala学习笔记之入门
    解决 Invalid character found in method name. HTTP method names must be tokens 异常信息
    从康威定律和技术债看研发之痛
  • 原文地址:https://www.cnblogs.com/xiadongqing/p/6349891.html
Copyright © 2011-2022 走看看