junit5 入门系列教程-27-junit5 拓展实体-用户代码和扩展的相对执行顺序

目录

用户代码和扩展的相对执行顺序

当执行包含一个或多个测试方法的测试类时,除了用户提供的测试和生命周期方法外,还会调用许多扩展回调。

相对顺序

下图说明了用户提供的代码和扩展代码的相对顺序。

BeforeAllCallBack //(1)
    @BeforeAll  //(2)
        BeforeEachCallBack  //(3)
            @BeforeEach //(4)
                BeforeTestExecutionCallBack //(5)
                    @Test   //(6)
                    TestExecutionExceptionHandler   //(7)
                BeforeTestExecutionCallBack //(8)
            @AfterEach //(9)    
        AfterEachCallBack  //(10)    
    @AfterAll  //(11)    
AfterAllCallBack //(1)  

步骤

用户提供的测试和生命周期方法用橙色显示,用蓝色显示的扩展提供回调代码。灰色框表示执行单个测试方法,并将对测试类中的每个测试方法重复执行。

下表进一步解释了用户代码和扩展代码图中的12个步骤。

步骤接口/注解描述
1interface org.junit.jupiter.api.extension.BeforeAllCallback在执行容器的所有测试之前执行扩展代码
2@annotation org.junit.jupiter.api.BeforeAll在执行容器的所有测试之前执行用户代码
3interface org.junit.jupiter.api.extension.BeforeEachCallback在执行每个测试之前执行的扩展代码
4@annotation org.junit.jupiter.api.BeforeEach在执行每个测试之前执行的用户代码
5interface org.junit.jupiter.api.extension.BeforeTestExecutionCallback在执行测试之前立即执行的扩展代码
6@annotation org.junit.jupiter.api.Test用户代码的实际测试方法
7interface org.junit.jupiter.api.extension.TestExecutionExceptionHandler处理在测试期间抛出的异常的扩展代码
8interface org.junit.jupiter.api.extension.AfterTestExecutionCallback测试执行后立即执行的扩展代码及其相应的异常处理程序
9@annotation org.junit.jupiter.api.AfterEach在每次测试执行后执行的用户代码
10interface org.junit.jupiter.api.extension.AfterEachCallback每次测试执行后执行的扩展代码
11@annotation org.junit.jupiter.api.AfterAll在执行容器的所有测试之后执行用户代码
12interface org.junit.jupiter.api.extension.AfterAllCallback在执行容器的所有测试之后执行扩展代码

在最简单的情况下,只执行实际的测试方法(步骤6);所有其他步骤都是可选的,这取决于用户代码的存在或相应生命周期回调的扩展支持。有关各种生命周期回调的详细信息,请咨询各自的JavaDoc以获得每个注释和扩展。

系列导航

系列导航

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值