zoukankan      html  css  js  c++  java
  • 后端——框架——测试框架——junit——生命周期

      本篇包含两个部分。

    第一部分,介绍测试类的生命周期

    第二部分,介绍测试方法的生命周期。

    1、测试类

    默认情况下,测试类会为每个测试案例方法创建一个实例,即使案例方法上有@Disabled等类似的注解。

    在类上添加@TestInstance注解,它的值有两种:

    LIFE_CYCLE.PER_CLASS,它只会创建一个实例。

    LIFE_CYCLE.PER_METHOD, 每运行一个测试方法,创建一个实例,是默认值。

    junit.jupiter.testinstance.lifecycle.default = per_class,默认的值为per_method。

    当实例创建之后,若实现TestInstancePostProcessor接口,可以自定义初始化过程。

    当实例销毁之前,若实现TestInstancePreDestroyCallback接口,可以在销毁之前回收资源。

    类似于spring框架中的init-method和destory-method,@PostConstruct, @PreDestory机制。

    2、测试方法

    与生命周期相关的方法有:

    @BeforeAll:在所有测试方法开始前运行一次,且只运行一次。

    @BeforeEach: 在每个测试案例开始前运行一次。对于多次运行的,每运行完一次算一次。

    @AfterEach:在每个测试案例结束后运行一次。

    @AfterAll:在所有案例结束后运行一次。

    与生命周期相关的接口有:

    BeforeXXCallback,AfterXXCallback:在对应的方法开始之前运行,结束之后运行。

    InvocationInterceptor:拦截器。

    假设所有都存在,它们的顺序为:

    execute postProcessTestInstance method
    	execute Before all tests
    		execute before Each tests
    			execute beforeTestExecution method
    				execute test case method 1 times
    			execute afterTestExecution method
    		execute After Each tests
    		execute before Each tests
    			execute beforeTestExecution method
    				execute test case method 2 times
    			execute afterTestExecution method
    		execute After Each tests
    	execute After all tests
    execute preDestroyTestInstance method
    

      上述示例为@RepeatedTest,次数为2。它们的层次结构依次是:

    类生命周期

        Before All

           BeforeXXCallback

               InvocationInterceptor

                  测试方法

    注:BeforeXXCallback,InvocationInterceptor, TestInstancePostProcessor等接口属于扩展,需要注册才能生效.

  • 相关阅读:
    DIV+CSS对SEO的帮助
    几种CSS及网站开发常犯的错误
    DIV CSS让搜索引擎蜘蛛不再累
    DIV CSS布局概述及初步入门
    闭合浮动元素(clearingfloat)的简单方法
    Vue学习(十三)模版引擎算是预处理器吗?
    base64学习(二)base64应用于图片
    base64学习(一)Base64的编码转换方式
    HTTP学习(四)短连接和长连接
    favicon.ico学习(三)实战
  • 原文地址:https://www.cnblogs.com/rain144576/p/15580571.html
Copyright © 2011-2022 走看看