回调接口
- BeforeAllCallback
- AfterAllCallback
- BeforeEachCallBack
- AfterEachCallback
- BeforeTestExecutionCallback
- AfterTestExecutionCallback
BeforeAllCallback
- 在所有测试方法 及 @BeforeAll、@AfterAll注解修饰的方法 执行之前和之后执行
AfterAllCallback
- 在所有测试方法 及 @BeforeAll、@AfterAll注解修饰的方法 执行之前和之后执行
BeforeEachCallBack
- 在每个测试方法及 @BeforeEach、@AfterEach注解修饰的方法 之前和之后执行
AfterEachCallback
- 在每个测试方法及 @BeforeEach、@AfterEach注解修饰的方法 之前和之后执行
BeforeTestExecutionCallback
AfterTestExecutionCallback
执行顺序
- BeforeAllCallback
- BeforeAll
- BeforeEachCallback
- BeforeEach
- BeforeTestExecutionCallback
- Test
- AfterTestExecutionCallback
- AfterEach
- AfterEachCallback
- AfterAll
- AfterAllCallback
回调激活
package com.junit5.lifecycle_callback;
import org.junit.jupiter.api.extension.*;
public class CallExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback,
        AfterEachCallback, BeforeTestExecutionCallback, AfterTestExecutionCallback {
    @Override
    public void beforeAll(ExtensionContext extensionContext) throws Exception {
        System.out.println("CallExtension--BeforeAllCallback--beforeAll");
    }
    @Override
    public void afterAll(ExtensionContext extensionContext) throws Exception {
        System.out.println("CallExtension--AfterAllCallback--afterAll");
    }
    @Override
    public void beforeEach(ExtensionContext extensionContext) throws Exception {
        System.out.println("CallExtension--BeforeEachCallback--beforeEach");
    }
    @Override
    public void afterEach(ExtensionContext extensionContext) throws Exception {
        System.out.println("CallExtension--AfterEachCallback--afterEach");
    }
    @Override
    public void beforeTestExecution(ExtensionContext extensionContext) throws Exception {
        System.out.println("CallExtension--BeforeTestExecutionCallback--beforeTestExecution");
    }
    @Override
    public void afterTestExecution(ExtensionContext extensionContext) throws Exception {
        System.out.println("CallExtension--AfterTestExecutionCallback--afterTestExecution");
    }
}
package com.junit5.lifecycle_callback;
import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
import org.junit.jupiter.api.extension.BeforeTestExecutionCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import java.lang.reflect.Method;
public class TimeExtension implements BeforeTestExecutionCallback, AfterTestExecutionCallback {
    @Override
    public void beforeTestExecution(ExtensionContext extensionContext) throws Exception {
        Method testMethod = extensionContext.getRequiredTestMethod();
        extensionContext.getStore(
                ExtensionContext.Namespace.create(
                        getClass(),testMethod
                )
        ).put("Start-Time",System.currentTimeMillis());
    }
    @Override
    public void afterTestExecution(ExtensionContext extensionContext) throws Exception {
        Method testMethod = extensionContext.getRequiredTestMethod();
        Long startTime = extensionContext.getStore(
                ExtensionContext.Namespace.create(
                        getClass(), testMethod
                )
        ).remove("Start-Time", long.class);
        Long endTime = System.currentTimeMillis();
        Long durTime = endTime-startTime;//测试方法运行时间
        System.out.println("方法名为:"+testMethod.getName()+"持续时间为:"+durTime+"ms");
    }
}
package com.junit5.lifecycle_callback;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith({
        CallExtension.class,
        TimeExtension.class
})
public class OneTest {
    @BeforeAll
    public static void bf(){
        System.out.println("OneTest----BeforeAll");
        System.out.println("数据库中---创建用户表");
    }
    @BeforeEach
    public void be(){
        System.out.println("OneTest----BeforeEach");
        System.out.println("数据库中---提示说明对表的数据要进行操作");
    }
    @Test
    public void test1(){
        System.out.println("数据库中----添加用户的业务逻辑");
    }
    @Test
    public void test2(){
        System.out.println("数据库中----更新用户手机号的业务逻辑");
    }
    @AfterEach
    public void ae(){
        System.out.println("OneTest----AfterEach");
        System.out.println("数据库中---更新数据时事务提交");
    }
    @AfterAll
    public static void af(){
        System.out.println("OneTest----AfterAll");
        System.out.println("数据库中---删除用户表");
    }
}