zoukankan      html  css  js  c++  java
  • 1. junit用法,before,beforeClass,after, afterClass的执行顺序

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

    @BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 


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

    @Before -> @Test -> @After;

    代码示例:

     1 /**
     2  * @author GrimMjx
     3  */
     4 public class JunitTest {
     5 
     6     @BeforeClass
     7     public static void beforeClass(){
     8         System.out.println("BeforeClass");
     9     }
    10 
    11     @Before
    12     public void before(){
    13         System.out.println("Before");
    14     }
    15 
    16     @Test
    17     public void test(){
    18         System.out.println("Test");
    19     }
    20 
    21     @Test
    22     public void test2(){
    23         System.out.println("Test2");
    24     }
    25 
    26     @After
    27     public void after(){
    28         System.out.println("After");
    29     }
    30 
    31     @AfterClass
    32     public static void afterClass(){
    33         System.out.println("AfterClass");
    34     }
    35 }

    执行结果:

    BeforeClass
    Before
    Test
    After
    Before
    Test2
    After
    AfterClass

    @BeforeClass、@AfterClass和@Before、@After的对比

    1.@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后 都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择;

    2.如果类里面可以有多个注解过@Before和@After的方法,它们的执行顺序是未知的;

    3.@BeforeClass  @AfterClass注解是junit提供的另外的两个注解,必须设置在public 静态方法之上,表示在class加载之前执行,这样设置的方法只会执行一次,而@Before @After则会再每次test之前/之后执行;

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

  • 相关阅读:
    并行编译 Xoreax IncrediBuild
    FreeImage使用
    wxWidgets简单的多线程
    wx菜单栏
    #你好Unity3D#Hierarchy视图监听gameObject点击事件
    #你好Unity3D#Project脚本执行双击资源操作
    Unity3D研究院编辑器之Editor的GUI的事件拦截
    Unity3D研究院编辑器之脚本设置ToolBar
    Unity3D研究院编辑器之不影响原有布局拓展Inspector
    Unity3D研究院之Editor下监听Transform变化
  • 原文地址:https://www.cnblogs.com/GrimMjxCl/p/9296634.html
Copyright © 2011-2022 走看看