后端——框架——测试框架——junit——扩展功能
本篇包含两个部分。
第一部分,介绍如何注册扩展。
第二部分,介绍剩余的扩展功能,它们的使用频率通常较低。
1、注册
注册Extension的方式有三种,
第一种,使用@ExtendWith注解,或者是自定义的,包含@ExtendWith的复合注解。
第二种,使用@RegisterExtension注解,它是添加在测试类的属性上的,静态属性和非静态属性的区别在于运行的时机。
第三种,开启Junit自动扫描Extension的功能,首先开启自动扫描的功能,具体做法,配置junit.jupiter.extensions.autodetection.enabled的值为true。开启后,会扫描/META-INF/services下的org.junit.jupiter.api.extension.Extension文件,文件的内容为扩展类的全称(包名 + 类名)。
第一种方式频率较高。例如官网中注入TimingExtension,计算测试方法的运行时间。
@ExtendWith(TimingExtension.class) public interface TimeExcuitionLogger { }
2、TestInstanceFactory
TestInstanceFactory用来创建测试类的实例对象。它只有一个方法createTestInstance,使用频率低,略。
3、TempDirectory
TempDirectory用于创建临时的文件或目录,Junit提供了默认的实现。可以在方法上添加@TempDir注解。